sticker-convert 2.13.1.0__py3-none-any.whl → 2.13.2.1__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
sticker_convert/cli.py CHANGED
@@ -233,6 +233,7 @@ class CLI:
233
233
  "telegram_telethon": args.download_telegram_telethon,
234
234
  "kakao": args.download_kakao,
235
235
  "band": args.download_band,
236
+ "ogq": args.download_ogq,
236
237
  "viber": args.download_viber,
237
238
  "discord": args.download_discord,
238
239
  "discord_emoji": args.download_discord_emoji,
@@ -0,0 +1,79 @@
1
+ #!/usr/bin/env python3
2
+ from __future__ import annotations
3
+
4
+ from pathlib import Path
5
+ from typing import Any, List, Optional, Tuple
6
+ from urllib import parse
7
+
8
+ import requests
9
+ from bs4 import BeautifulSoup
10
+
11
+ from sticker_convert.downloaders.download_base import DownloadBase
12
+ from sticker_convert.job_option import CredOption, InputOption
13
+ from sticker_convert.utils.callback import CallbackProtocol, CallbackReturn
14
+ from sticker_convert.utils.files.metadata_handler import MetadataHandler
15
+
16
+ # Reference: https://github.com/star-39/moe-sticker-bot/issues/49
17
+
18
+
19
+ class DownloadOgq(DownloadBase):
20
+ def __init__(self, *args: Any, **kwargs: Any) -> None:
21
+ super().__init__(*args, **kwargs)
22
+ self.headers = {"User-Agent": "Mozilla/5.0"}
23
+
24
+ def download_stickers_ogq(self) -> Tuple[int, int]:
25
+ url_parse = parse.urlparse(self.url)
26
+ if (
27
+ url_parse.netloc != "ogqmarket.naver.com"
28
+ or url_parse.path.startswith("/artworks/sticker/detail") is False
29
+ ):
30
+ self.cb.put(f"Invalid url: {self.url}")
31
+ artwork_id = {
32
+ i.split("=")[0]: i.split("=")[1] for i in url_parse.query.split("&")
33
+ }["artworkId"]
34
+
35
+ html = requests.get(self.url, headers=self.headers).text
36
+ soup = BeautifulSoup(html, "html.parser")
37
+
38
+ author_tag = soup.select_one("div.info div.nickname span") # type: ignore
39
+ author = author_tag.text.strip() if author_tag else "OGQ"
40
+ title_tag = soup.select_one("div.header div div.title p") # type: ignore
41
+ title = title_tag.text.strip() if title_tag else artwork_id
42
+
43
+ seen: List[str] = []
44
+ imgs: List[str] = []
45
+ targets: List[Tuple[str, Path]] = []
46
+ n = 0
47
+ for img in soup.find_all("img", alt="sticker-detail-image-prevew"):
48
+ src = img.get("src")
49
+ if not src:
50
+ continue
51
+ src = src.split("?")[0]
52
+ if src in seen:
53
+ continue
54
+ seen.append(src)
55
+ imgs.append(src)
56
+ sticker_url = f"{src}?type=ma480_480"
57
+ sticker_url_parse = parse.urlparse(sticker_url)
58
+ ext = sticker_url_parse.path.split(".")[-1]
59
+ if sticker_url_parse.path.split("/")[-1].startswith("original_"):
60
+ path = self.out_dir / f"{n}.{ext}"
61
+ else:
62
+ path = self.out_dir / f"cover.{ext}"
63
+ targets.append((sticker_url, path))
64
+ n += 1
65
+
66
+ results = self.download_multiple_files(targets)
67
+ MetadataHandler.set_metadata(self.out_dir, title=title, author=author)
68
+
69
+ return len(results.values()), len(targets)
70
+
71
+ @staticmethod
72
+ def start(
73
+ opt_input: InputOption,
74
+ opt_cred: Optional[CredOption],
75
+ cb: CallbackProtocol,
76
+ cb_return: CallbackReturn,
77
+ ) -> Tuple[int, int]:
78
+ downloader = DownloadOgq(opt_input, opt_cred, cb, cb_return)
79
+ return downloader.download_stickers_ogq()
sticker_convert/job.py CHANGED
@@ -16,6 +16,7 @@ from sticker_convert.downloaders.download_band import DownloadBand
16
16
  from sticker_convert.downloaders.download_discord import DownloadDiscord
17
17
  from sticker_convert.downloaders.download_kakao import DownloadKakao
18
18
  from sticker_convert.downloaders.download_line import DownloadLine
19
+ from sticker_convert.downloaders.download_ogq import DownloadOgq
19
20
  from sticker_convert.downloaders.download_signal import DownloadSignal
20
21
  from sticker_convert.downloaders.download_telegram import DownloadTelegram
21
22
  from sticker_convert.downloaders.download_viber import DownloadViber
@@ -570,6 +571,9 @@ class Job:
570
571
  if self.opt_input.option == "band":
571
572
  downloaders.append(DownloadBand.start)
572
573
 
574
+ if self.opt_input.option == "ogq":
575
+ downloaders.append(DownloadOgq.start)
576
+
573
577
  if self.opt_input.option == "viber":
574
578
  downloaders.append(DownloadViber.start)
575
579
 
@@ -375,6 +375,53 @@
375
375
  "quantize_method": "imagequant",
376
376
  "default_emoji": "😀"
377
377
  },
378
+ "ogq": {
379
+ "size_max": {
380
+ "img": 0,
381
+ "vid": 0
382
+ },
383
+ "format": {
384
+ "img": ".png",
385
+ "vid": ".gif"
386
+ },
387
+ "fps": {
388
+ "min": 1,
389
+ "max": 30,
390
+ "power": -0.5
391
+ },
392
+ "res": {
393
+ "w": {
394
+ "min": 480,
395
+ "max": 480
396
+ },
397
+ "h": {
398
+ "min": 480,
399
+ "max": 480
400
+ },
401
+ "power": 3
402
+ },
403
+ "quality": {
404
+ "min": 10,
405
+ "max": 95,
406
+ "power": 5
407
+ },
408
+ "color": {
409
+ "min": 32,
410
+ "max": 257,
411
+ "power": 3
412
+ },
413
+ "duration": {
414
+ "min": 83,
415
+ "max": 4000
416
+ },
417
+ "padding_percent": 0,
418
+ "bg_color": "",
419
+ "steps": 16,
420
+ "fake_vid": false,
421
+ "scale_filter": "bicubic",
422
+ "quantize_method": "imagequant",
423
+ "default_emoji": "😀"
424
+ },
378
425
  "viber": {
379
426
  "size_max": {
380
427
  "img": 0,
@@ -69,6 +69,16 @@
69
69
  "author": false
70
70
  }
71
71
  },
72
+ "ogq": {
73
+ "full_name": "Download from OGQ",
74
+ "help": "Download OGQ stickers from a URL / ID as input",
75
+ "example": "Example: https://ogqmarket.naver.com/artworks/sticker/detail?artworkId=xxxxx",
76
+ "address_lbls": "URL address",
77
+ "metadata_provides": {
78
+ "title": true,
79
+ "author": false
80
+ }
81
+ },
72
82
  "viber": {
73
83
  "full_name": "Download from Viber",
74
84
  "help": "Download viber stickers from a URL as input",
@@ -1,3 +1,3 @@
1
1
  #!/usr/bin/env python3
2
2
 
3
- __version__ = "2.13.1.0"
3
+ __version__ = "2.13.2.1"
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: sticker-convert
3
- Version: 2.13.1.0
3
+ Version: 2.13.2.1
4
4
  Summary: Convert (animated) stickers to/from WhatsApp, Telegram, Signal, Line, Kakao, Viber, Discord, iMessage. Written in Python.
5
5
  Author-email: laggykiller <chaudominic2@gmail.com>
6
6
  Maintainer-email: laggykiller <chaudominic2@gmail.com>
@@ -380,7 +380,7 @@ Requires-Dist: pyoxipng~=9.1.0
380
380
  Requires-Dist: python-telegram-bot~=22.1
381
381
  Requires-Dist: psutil~=7.0.0
382
382
  Requires-Dist: PyMemoryEditor~=1.5.22
383
- Requires-Dist: requests~=2.32.3
383
+ Requires-Dist: requests~=2.32.4
384
384
  Requires-Dist: rlottie_python~=1.3.7
385
385
  Requires-Dist: signalstickers-client-fork-laggykiller~=3.3.0.post2
386
386
  Requires-Dist: socksio~=1.0.0
@@ -396,7 +396,7 @@ Dynamic: license-file
396
396
 
397
397
  - A python script for creating, downloading, converting+compressing and uploading stickers from multiple instant messaging applications.
398
398
  - With GUI and CLI that runs on Windows, MacOS and Linux
399
- - Currently supports Signal, Telegram, WhatsApp (Create .wastickers), Line (Download only), Kakao (Download only), Naver Band (Download only), Viber, Discord (Download only), iMessage (Create Xcode sticker pack project)
399
+ - Currently supports Signal, Telegram, WhatsApp (Create .wastickers), Line (Download only), Kakao (Download only), Naver Band (Download only), OGQ (Download only), Viber, Discord (Download only), iMessage (Create Xcode sticker pack project)
400
400
  - Supports static and animated stickers, with transparency support
401
401
 
402
402
  ## Downloads
@@ -438,6 +438,7 @@ Dynamic: license-file
438
438
  | [Line](docs/guide_line.md) | ✅ | 🚫 (Need to submit for manual approval) |
439
439
  | [Kakao](docs/guide_kakao.md) | ✅ (Need 'auth_token' for animated) | 🚫 (Need to submit for manual approval) |
440
440
  | [Band](docs/guide_band.md) | ✅ | 🚫 (Need to submit for manual approval) |
441
+ | [OGQ](docs/guide_ogq.md) | ✅ | 🚫 (Need to submit for manual approval) |
441
442
  | [Viber](docs/guide_viber.md) | ✅ | ✅ (Require `viber_auth`) |
442
443
  | [Discord](docs/guide_discord.md) | ✅ (Require `token`) | 🚫 |
443
444
  | [iMessage](docs/guide_imessage.md) | 🚫 | ⭕ (Create Xcode stickerpack project for sideload) |
@@ -467,6 +468,9 @@ Dynamic: license-file
467
468
  - Band
468
469
  - Download: Supported (e.g. `https://www.band.us/sticker/xxxx` OR 2535). Learn how to get share link from [docs/guide_band.md](docs/guide_band.md)
469
470
  - Upload: Not supported. You need to manually submit sticker pack for approval before you can use in app.
471
+ - OGQ
472
+ - Download: Supported (e.g. `https://ogqmarket.naver.com/artworks/sticker/detail?artworkId=xxxxx`)
473
+ - Upload: Not supported. You need to manually submit sticker pack for approval before you can use in app.
470
474
  - Viber
471
475
  - Download: Supported (e.g. `https://stickers.viber.com/pages/example` OR `https://stickers.viber.com/pages/custom-sticker-packs/example`)
472
476
  - Upload: Supported. Viber authentication data required for uploading Viber stickers, which could be fetched from Viber Desktop application automatically.
@@ -494,11 +498,11 @@ To run in CLI mode, pass on any arguments
494
498
 
495
499
  ```
496
500
  usage: sticker-convert.py [-h] [--version] [--no-confirm] [--no-progress] [--custom-presets CUSTOM_PRESETS] [--input-dir INPUT_DIR]
497
- [--download-auto DOWNLOAD_AUTO | --download-signal DOWNLOAD_SIGNAL | --download-telegram DOWNLOAD_TELEGRAM | --download-telegram-telethon DOWNLOAD_TELEGRAM_TELETHON | --download-line DOWNLOAD_LINE | --download-kakao DOWNLOAD_KAKAO | --download-band DOWNLOAD_BAND | --download-viber DOWNLOAD_VIBER | --download-discord DOWNLOAD_DISCORD | --download-discord-emoji DOWNLOAD_DISCORD_EMOJI]
501
+ [--download-auto DOWNLOAD_AUTO | --download-signal DOWNLOAD_SIGNAL | --download-telegram DOWNLOAD_TELEGRAM | --download-telegram-telethon DOWNLOAD_TELEGRAM_TELETHON | --download-line DOWNLOAD_LINE | --download-kakao DOWNLOAD_KAKAO | --download-band DOWNLOAD_BAND | --download-ogq DOWNLOAD_OGQ | --download-viber DOWNLOAD_VIBER | --download-discord DOWNLOAD_DISCORD | --download-discord-emoji DOWNLOAD_DISCORD_EMOJI]
498
502
  [--output-dir OUTPUT_DIR] [--author AUTHOR] [--title TITLE]
499
503
  [--export-signal | --export-telegram | --export-telegram-emoji | --export-telegram-telethon | --export-telegram-emoji-telethon | --export-viber | --export-whatsapp | --export-imessage]
500
504
  [--no-compress]
501
- [--preset {auto,signal,telegram,telegram_emoji,whatsapp,line,kakao,viber,discord,discord_emoji,imessage_small,imessage_medium,imessage_large,custom}]
505
+ [--preset {auto,signal,telegram,telegram_emoji,whatsapp,line,kakao,band,ogq,viber,discord,discord_emoji,imessage_small,imessage_medium,imessage_large,custom}]
502
506
  [--steps STEPS] [--processes PROCESSES] [--fps-min FPS_MIN] [--fps-max FPS_MAX] [--fps-power FPS_POWER]
503
507
  [--res-min RES_MIN] [--res-max RES_MAX] [--res-w-min RES_W_MIN] [--res-w-max RES_W_MAX] [--res-h-min RES_H_MIN]
504
508
  [--res-h-max RES_H_MAX] [--res-power RES_POWER] [--quality-min QUALITY_MIN] [--quality-max QUALITY_MAX]
@@ -555,6 +559,9 @@ Input options:
555
559
  --download-band DOWNLOAD_BAND
556
560
  Download Naver Band stickers from a URL / ID as input
557
561
  (Example: https://www.band.us/sticker/xxxx OR 2535)
562
+ --download-ogq DOWNLOAD_OGQ
563
+ Download OGQ stickers from a URL / ID as input
564
+ (Example: https://ogqmarket.naver.com/artworks/sticker/detail?artworkId=xxxxx)
558
565
  --download-viber DOWNLOAD_VIBER
559
566
  Download viber stickers from a URL as input
560
567
  (Example: https://stickers.viber.com/pages/example
@@ -587,7 +594,7 @@ Output options:
587
594
 
588
595
  Compression options:
589
596
  --no-compress Do not compress files. Useful for only downloading stickers.
590
- --preset {auto,signal,telegram,telegram_emoji,whatsapp,line,kakao,viber,discord,discord_emoji,imessage_small,imessage_medium,imessage_large,custom}
597
+ --preset {auto,signal,telegram,telegram_emoji,whatsapp,line,kakao,band,ogq,viber,discord,discord_emoji,imessage_small,imessage_medium,imessage_large,custom}
591
598
  Apply preset for compression.
592
599
  --steps STEPS Set number of divisions between min and max settings.
593
600
  Steps higher = Slower but yields file more closer to the specified file size limit.
@@ -893,5 +900,5 @@ See [docs/TODO.md](docs/TODO.md)
893
900
  - Free code signing on Windows provided by [SignPath.io](https://about.signpath.io/), certificate by [SignPath Foundation](https://signpath.org/)
894
901
 
895
902
  ## DISCLAIMER
896
- - The author of this repo is NOT affiliated with Signal, Telegram, WhatsApp, Line, Kakao, Naver Band, Viber, Discord, iMessage or Sticker Maker.
903
+ - The author of this repo is NOT affiliated with Signal, Telegram, WhatsApp, Line, Kakao, Naver Band, OGQ, Viber, Discord, iMessage or Sticker Maker.
897
904
  - The author of this repo is NOT repsonsible for any legal consequences and loss incurred from using this repo.
@@ -1,18 +1,19 @@
1
1
  sticker_convert/__init__.py,sha256=iQnv6UOOA69c3soAn7ZOnAIubTIQSUxtq1Uhh8xRWvU,102
2
2
  sticker_convert/__main__.py,sha256=elDCMvU27letiYs8jPUpxaCq5puURnvcDuqGsAAb6_w,592
3
- sticker_convert/cli.py,sha256=JdfZe4-GGFoa8vkNaUwCtwzmypCfMNaPZuhzHpmLBpM,22544
3
+ sticker_convert/cli.py,sha256=RG62v3JFSokhKZo1J7zbc1NL0oY43ufVrIub8nT_f_A,22582
4
4
  sticker_convert/converter.py,sha256=6_FGXW-S6t2xs56fid49z2FaEc1VFtJ-jJOA-SUKSH8,39760
5
5
  sticker_convert/definitions.py,sha256=BqROmOvqIqw8ANaqZXIxJAXGD0HgjAvCfFouQ4SaWHc,2254
6
6
  sticker_convert/gui.py,sha256=bd8rMgFaXrn41y6aOHNlD6gPBDleDmiHMsGMZNfz1jk,34239
7
- sticker_convert/job.py,sha256=FJiaJEcfMr8GnNfPC3SDcpTs7ytoiAZk6cxUbzsw9IE,28257
7
+ sticker_convert/job.py,sha256=jK65lOuPyevQ6Pt9Qw029bGcgYLMuaHlexpc1n1qFxE,28416
8
8
  sticker_convert/job_option.py,sha256=yI_uKWJEAul2XTC6pucz9PfW0iNwwOr0aVC-PAHkMA4,8109
9
- sticker_convert/version.py,sha256=IqHvkpNtjDMGeiZS1r9gF2cyof0NHldraqS5R5rrq10,49
9
+ sticker_convert/version.py,sha256=f-IGg55P9iTzFu-qVlNDW5ioRe04BJzemQ14gfGLoEQ,49
10
10
  sticker_convert/downloaders/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
11
11
  sticker_convert/downloaders/download_band.py,sha256=JPjwwdxbMXPBM9TXF76wT9mtoDCLssYnrm1iS2C6uVM,3629
12
12
  sticker_convert/downloaders/download_base.py,sha256=MI5pCT_tkfoaFlrD1oNynDj1Rv1CK0APuNVElTEAEis,5110
13
13
  sticker_convert/downloaders/download_discord.py,sha256=6AFpLAYL2hRvVcsqUtzDUC31U66U02ZcnKXDnZRi2jk,3496
14
14
  sticker_convert/downloaders/download_kakao.py,sha256=lRmpEcYjHizIRM0uFBDvjMqNEpur0VmOTKAmiir9eB0,15181
15
15
  sticker_convert/downloaders/download_line.py,sha256=751-g6BH0ITwNlYNsZuBxyB92Q8f3o6Qv9VHmHDoLps,18161
16
+ sticker_convert/downloaders/download_ogq.py,sha256=-iSTQaCUlROfY7a9EFhJGq6fenY48AZEevfQLT9-pAk,2951
16
17
  sticker_convert/downloaders/download_signal.py,sha256=3wv-BLd4qggly4AdtwV8f3vUpCVZ-8GnoPLoWngY3Pk,3728
17
18
  sticker_convert/downloaders/download_telegram.py,sha256=iGmOcVjU2Ai19t1lyDY2JhQIc--O5XMyNCGXZAA4DVY,2028
18
19
  sticker_convert/downloaders/download_viber.py,sha256=SFnyaVEd_33J1KvRhcHDJqnLKGsbLMeA2NomVHm2ulM,4226
@@ -71,10 +72,10 @@ sticker_convert/resources/NotoColorEmoji.ttf,sha256=LurIVaCIA8bSCfjrdO1feYr0bhKL
71
72
  sticker_convert/resources/appicon.icns,sha256=FB2DVTOQcFfQNZ9RcyG3z9c9k7eOiI1qw0IJhXMRFg4,5404
72
73
  sticker_convert/resources/appicon.ico,sha256=-ldugcl2Yq2pBRTktnhGKWInpKyWzRjCiPvMr3XPTlc,38078
73
74
  sticker_convert/resources/appicon.png,sha256=6XBEQz7PnerqS43aRkwpWolFG4WvKMuQ-st1ly-_JPg,5265
74
- sticker_convert/resources/compression.json,sha256=wEgtjcDyLEYup53s-SCGu2Wc3UdReWeSj9POWn5PXkk,15184
75
+ sticker_convert/resources/compression.json,sha256=UUY375C1PDHVrbaHO0V3O2TCayNBkrIHchKNjfc10Aw,16183
75
76
  sticker_convert/resources/emoji.json,sha256=q9DRFdVJfm7feZW7ZM6Xa5P1QsMvrn0PbBVU9jKcJKI,422720
76
77
  sticker_convert/resources/help.json,sha256=28m5oMhybN3yg7EhmjBlPJq1HtHYa0joG355Ie1Zn10,7336
77
- sticker_convert/resources/input.json,sha256=vLP8pVo4Mfh-yLRjy5j1x4SMR1dQC9xCRzQ6RWN_t2E,4213
78
+ sticker_convert/resources/input.json,sha256=cpLQQ-jwXSHQUd8faLn-e-mAEvJViKs_d7UuqIvF7ZQ,4575
78
79
  sticker_convert/resources/memdump_linux.sh,sha256=SFKXiE0ztZyGvpFYPOrdQ0wmY3ndgJuqfiofC7BQon0,625
79
80
  sticker_convert/resources/memdump_windows.ps1,sha256=CfyNSSEW3HJOkTu-mKrP3qh5aprN-1VCBfj-R1fELA0,302
80
81
  sticker_convert/resources/output.json,sha256=SC_3vtEBJ79R7q0vy_p33eLsGFEyBsSOai0Hy7mLqG8,2208
@@ -112,9 +113,9 @@ sticker_convert/utils/media/apple_png_normalize.py,sha256=LbrQhc7LlYX4I9ek4XJsZE
112
113
  sticker_convert/utils/media/codec_info.py,sha256=HwA6eVh7cLhOlUoR_K9d_wyBRJ_ocGtB3GAyne_iZAU,16483
113
114
  sticker_convert/utils/media/decrypt_kakao.py,sha256=4wq9ZDRnFkx1WmFZnyEogBofiLGsWQM_X69HlA36578,1947
114
115
  sticker_convert/utils/media/format_verify.py,sha256=oM32P186tWe9YxvBQRPr8D3FEmBN3b2rEe_2S_MwxyQ,6236
115
- sticker_convert-2.13.1.0.dist-info/licenses/LICENSE,sha256=gXf5dRMhNSbfLPYYTY_5hsZ1r7UU1OaKQEAQUhuIBkM,18092
116
- sticker_convert-2.13.1.0.dist-info/METADATA,sha256=HS8RD0rAFH3H34wZn7ilCqeVEa0p8L0QOYik4EB_dIY,54533
117
- sticker_convert-2.13.1.0.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
118
- sticker_convert-2.13.1.0.dist-info/entry_points.txt,sha256=MNJ7XyC--ugxi5jS1nzjDLGnxCyLuaGdsVLnJhDHCqs,66
119
- sticker_convert-2.13.1.0.dist-info/top_level.txt,sha256=r9vfnB0l1ZnH5pTH5RvkobnK3Ow9m0RsncaOMAtiAtk,16
120
- sticker_convert-2.13.1.0.dist-info/RECORD,,
116
+ sticker_convert-2.13.2.1.dist-info/licenses/LICENSE,sha256=gXf5dRMhNSbfLPYYTY_5hsZ1r7UU1OaKQEAQUhuIBkM,18092
117
+ sticker_convert-2.13.2.1.dist-info/METADATA,sha256=f9Um0rHP7eNK8ImI6GdGFiJ3DaOss54vE3XpBOA_r90,55170
118
+ sticker_convert-2.13.2.1.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
119
+ sticker_convert-2.13.2.1.dist-info/entry_points.txt,sha256=MNJ7XyC--ugxi5jS1nzjDLGnxCyLuaGdsVLnJhDHCqs,66
120
+ sticker_convert-2.13.2.1.dist-info/top_level.txt,sha256=r9vfnB0l1ZnH5pTH5RvkobnK3Ow9m0RsncaOMAtiAtk,16
121
+ sticker_convert-2.13.2.1.dist-info/RECORD,,