aboutsummaryrefslogtreecommitdiffstats
path: root/import.py
diff options
context:
space:
mode:
authorTulir Asokan <tulir@maunium.net>2020-09-06 17:10:07 +0300
committerTulir Asokan <tulir@maunium.net>2020-09-06 17:10:07 +0300
commit4ce90892f0df459361ffceaf59ff5a1624954b87 (patch)
treef3689d839680907a190573941a58a3f5f2e8431b /import.py
parent522e45a4ae0766aeeaa7c16f45f7d563026da84e (diff)
Stop using ID field from telegram metadata in widget
Diffstat (limited to 'import.py')
-rw-r--r--import.py37
1 files changed, 24 insertions, 13 deletions
diff --git a/import.py b/import.py
index 4291066..5f13565 100644
--- a/import.py
+++ b/import.py
@@ -87,6 +87,7 @@ if TYPE_CHECKING:
body: str
url: str
info: MatrixMediaInfo
+ id: str
def convert_image(data: bytes) -> (bytes, int, int):
@@ -113,12 +114,8 @@ async def reupload_document(client: TelegramClient, document: Document) -> 'Matr
else:
width = int(width / (height / 256))
height = 256
- body = ""
- for attr in document.attributes:
- if isinstance(attr, DocumentAttributeSticker):
- body = attr.alt
return {
- "body": body,
+ "body": "",
"url": mxc,
"info": {
"w": width,
@@ -152,6 +149,21 @@ def add_to_index(name: str) -> None:
print(f"Added {name} to {index_path}")
+def add_meta(document: Document, info: 'MatrixStickerInfo', pack: StickerSetFull) -> None:
+ for attr in document.attributes:
+ if isinstance(attr, DocumentAttributeSticker):
+ info["body"] = attr.alt
+ info["id"] = str(document.id)
+ info["net.maunium.telegram.sticker"] = {
+ "pack": {
+ "id": str(pack.set.id),
+ "short_name": pack.set.short_name,
+ },
+ "id": str(document.id),
+ "emoticons": [],
+ }
+
+
async def reupload_pack(client: TelegramClient, pack: StickerSetFull) -> None:
if pack.set.animated:
print("Animated stickerpacks are currently not supported")
@@ -183,18 +195,17 @@ async def reupload_pack(client: TelegramClient, pack: StickerSetFull) -> None:
print(f"Skipped reuploading {document.id}")
except KeyError:
reuploaded_documents[document.id] = await reupload_document(client, document)
- reuploaded_documents[document.id]["net.maunium.telegram.sticker"] = {
- "pack": {
- "id": str(pack.set.id),
- "short_name": pack.set.short_name,
- },
- "id": str(document.id),
- "emoticons": [],
- }
+ # Always ensure the body and telegram metadata is correct
+ add_meta(document, reuploaded_documents[document.id], pack)
for sticker in pack.packs:
+ if not sticker.emoticon:
+ continue
for document_id in sticker.documents:
doc = reuploaded_documents[document_id]
+ # If there was no sticker metadata, use the first emoji we find
+ if doc["body"] == "":
+ doc["body"] = sticker.emoticon
doc["net.maunium.telegram.sticker"]["emoticons"].append(sticker.emoticon)
with open(pack_path, "w") as pack_file:
send patches to the email below
yukais@pinapelz.com
include the subject [PATCH repo_name]
pinapelz.com
homepage