takunomi-build-bot
820538f90b
This commit was automatically generated by a script: https://gitfub.space/Jmaa/repo-manager
94 lines
2.5 KiB
Python
94 lines
2.5 KiB
Python
# WARNING
|
|
#
|
|
# THIS IS AN AUTOGENERATED FILE.
|
|
#
|
|
# MANUAL CHANGES CAN AND WILL BE OVERWRITTEN.
|
|
|
|
import re
|
|
|
|
from setuptools import setup
|
|
|
|
PACKAGE_NAME = 'libpurple_to_markdown'
|
|
|
|
PACKAGE_DESCRIPTION = """
|
|
# Markdown Message Conversion.
|
|
|
|
Conversion script from various messaging formats to markdown.
|
|
|
|
Supported input formats:
|
|
|
|
- [Pidgin/Libpurple](https://pidgin.im/) chat program HTML-based logs. **This
|
|
backend is not actively maintained.**
|
|
- [SyncTech Backup & Restore](https://www.synctech.com.au/sms-backup-restore/)
|
|
XML-based backup format.
|
|
|
|
## Motivation
|
|
|
|
Messaging applications are mostly good at sending real-time messages to other
|
|
people, but they generally do not possess any useful archival features. Most
|
|
messages are write-once read-once, and the apps where built for this use case.
|
|
More and more through, I am attracted to the prospect of archival; of
|
|
understanding who I am and who I _were_ when I wrote those messages.
|
|
|
|
I recently discovered [Obsidian](https://obsidian.md) and liked the prospect of
|
|
cross-referencing my notes with my old chat logs. Libpurple uses HTML logs if
|
|
you haven't configured it to something else (which I haden't).
|
|
|
|
I no longer use IRC or Pidgin as my entire friend group have switched to using
|
|
Matrix.
|
|
|
|
## Usage
|
|
|
|
From the repository root:
|
|
|
|
```bash
|
|
python -m libpurple_to_markdown LOG_DIRECTORY --output OUTPUT_FOLDER
|
|
```
|
|
|
|
It was made specifically for import into Obsidian, so it might not suite your
|
|
purposes, but it shouldn't be too difficult to adjust the formatting code.
|
|
|
|
## TODO
|
|
|
|
- [ ] Decode MMS parts and reconstruct image attachments.
|
|
""".strip()
|
|
|
|
PACKAGE_DESCRIPTION_SHORT = """
|
|
Conversion script from various messaging formats to markdown.""".strip()
|
|
|
|
|
|
def parse_version_file(text: str) -> str:
|
|
match = re.match(r'^__version__\s*=\s*(["\'])([\d\.]+)\1$', text)
|
|
if match is None:
|
|
msg = 'Malformed _version.py file!'
|
|
raise Exception(msg)
|
|
return match.group(2)
|
|
|
|
|
|
with open(PACKAGE_NAME + '/_version.py') as f:
|
|
version = parse_version_file(f.read())
|
|
|
|
|
|
REQUIREMENTS_MAIN = [
|
|
'beautifulsoup4',
|
|
]
|
|
REQUIREMENTS_TEST = []
|
|
|
|
|
|
setup(
|
|
name=PACKAGE_NAME,
|
|
version=version,
|
|
description=PACKAGE_DESCRIPTION_SHORT,
|
|
long_description=PACKAGE_DESCRIPTION,
|
|
long_description_content_type='text/markdown',
|
|
author='Jon Michael Aanes',
|
|
author_email='jonjmaa@gmail.com',
|
|
url='https://gitfub.space/Jmaa/' + PACKAGE_NAME,
|
|
packages=[PACKAGE_NAME],
|
|
install_requires=REQUIREMENTS_MAIN,
|
|
extras_require={
|
|
'test': REQUIREMENTS_TEST,
|
|
},
|
|
python_requires='>=3.9',
|
|
)
|