sticker-convert 2.11.7__py3-none-any.whl → 2.11.9__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/converter.py +3 -1
- sticker_convert/downloaders/download_kakao.py +57 -78
- sticker_convert/job.py +4 -0
- sticker_convert/resources/input.json +1 -1
- sticker_convert/utils/auth/get_kakao_auth.py +34 -4
- sticker_convert/utils/auth/get_kakao_desktop_auth.py +1 -1
- sticker_convert/utils/url_detect.py +1 -3
- sticker_convert/version.py +1 -1
- {sticker_convert-2.11.7.dist-info → sticker_convert-2.11.9.dist-info}/METADATA +6 -6
- {sticker_convert-2.11.7.dist-info → sticker_convert-2.11.9.dist-info}/RECORD +14 -14
- {sticker_convert-2.11.7.dist-info → sticker_convert-2.11.9.dist-info}/WHEEL +1 -1
- {sticker_convert-2.11.7.dist-info → sticker_convert-2.11.9.dist-info}/entry_points.txt +0 -0
- {sticker_convert-2.11.7.dist-info → sticker_convert-2.11.9.dist-info}/licenses/LICENSE +0 -0
- {sticker_convert-2.11.7.dist-info → sticker_convert-2.11.9.dist-info}/top_level.txt +0 -0
sticker_convert/converter.py
CHANGED
@@ -818,7 +818,9 @@ class StickerConvert:
|
|
818
818
|
im_out = [Image.fromarray(i) for i in self.frames_processed] # type: ignore
|
819
819
|
extra_kwargs["format"] = "WebP"
|
820
820
|
extra_kwargs["allow_mixed"] = True
|
821
|
-
extra_kwargs["kmax"] =
|
821
|
+
extra_kwargs["kmax"] = (
|
822
|
+
1 # Keyframe every frame, otherwise black lines artifact can appear
|
823
|
+
)
|
822
824
|
if self.quality:
|
823
825
|
if self.quality < 20:
|
824
826
|
extra_kwargs["minimize_size"] = True
|
@@ -4,12 +4,10 @@ from __future__ import annotations
|
|
4
4
|
import itertools
|
5
5
|
import json
|
6
6
|
from pathlib import Path
|
7
|
-
from typing import Any, List, Optional, Tuple
|
7
|
+
from typing import Any, List, Optional, Tuple
|
8
8
|
from urllib.parse import urlparse
|
9
9
|
|
10
10
|
import requests
|
11
|
-
from bs4 import BeautifulSoup
|
12
|
-
from py_mini_racer import MiniRacer
|
13
11
|
|
14
12
|
from sticker_convert.downloaders.download_base import DownloadBase
|
15
13
|
from sticker_convert.job_option import CredOption, InputOption
|
@@ -17,34 +15,32 @@ from sticker_convert.utils.callback import CallbackProtocol, CallbackReturn
|
|
17
15
|
from sticker_convert.utils.files.metadata_handler import MetadataHandler
|
18
16
|
from sticker_convert.utils.media.decrypt_kakao import DecryptKakao
|
19
17
|
|
20
|
-
JSINJECT = """
|
21
|
-
class osclass {
|
22
|
-
android = true;
|
23
|
-
}
|
24
|
-
class uaclass {
|
25
|
-
os = new osclass();
|
26
|
-
}
|
27
|
-
class util {
|
28
|
-
static userAgent() {
|
29
|
-
return new uaclass();
|
30
|
-
}
|
31
|
-
}
|
32
|
-
class daumtools {
|
33
|
-
static web2app(dataDict) {
|
34
|
-
return dataDict['urlScheme'];
|
35
|
-
}
|
36
|
-
}
|
37
|
-
class document {
|
38
|
-
static querySelectorAll(selectors) {
|
39
|
-
return [];
|
40
|
-
}
|
41
|
-
}
|
42
|
-
"""
|
43
|
-
|
44
18
|
|
45
19
|
class MetadataKakao:
|
46
20
|
@staticmethod
|
47
|
-
def
|
21
|
+
def get_item_code_from_hash(hash: str, auth_token: str) -> Optional[str]:
|
22
|
+
headers = {
|
23
|
+
"Authorization": auth_token,
|
24
|
+
}
|
25
|
+
|
26
|
+
data = {"hashedItemCode": hash}
|
27
|
+
|
28
|
+
response = requests.post(
|
29
|
+
"https://talk-pilsner.kakao.com/emoticon/api/store/v3/item-code-by-hash",
|
30
|
+
headers=headers,
|
31
|
+
data=data,
|
32
|
+
)
|
33
|
+
|
34
|
+
if response.status_code != 200:
|
35
|
+
return None
|
36
|
+
|
37
|
+
response_json = json.loads(response.text)
|
38
|
+
item_code = response_json["itemCode"]
|
39
|
+
|
40
|
+
return item_code
|
41
|
+
|
42
|
+
@staticmethod
|
43
|
+
def get_item_code_from_title(title_ko: str, auth_token: str) -> Optional[str]:
|
48
44
|
headers = {
|
49
45
|
"Authorization": auth_token,
|
50
46
|
}
|
@@ -112,66 +108,47 @@ class DownloadKakao(DownloadBase):
|
|
112
108
|
self.pack_info_unauthed: Optional[dict[str, Any]] = None
|
113
109
|
self.pack_info_authed: Optional[dict[str, Any]] = None
|
114
110
|
|
115
|
-
def get_info_from_share_link(self, url: str) -> Tuple[Optional[str], Optional[str]]:
|
116
|
-
headers = {"User-Agent": "Android"}
|
117
|
-
|
118
|
-
response = requests.get(url, headers=headers)
|
119
|
-
soup = BeautifulSoup(response.content.decode("utf-8", "ignore"), "html.parser")
|
120
|
-
|
121
|
-
pack_title_tag = soup.find("title") # type: ignore
|
122
|
-
if not pack_title_tag:
|
123
|
-
return None, None
|
124
|
-
|
125
|
-
pack_title: str = pack_title_tag.string # type: ignore
|
126
|
-
|
127
|
-
js = ""
|
128
|
-
for script_tag in soup.find_all("script"):
|
129
|
-
js = script_tag.string
|
130
|
-
if js and "daumtools.web2app" in js:
|
131
|
-
break
|
132
|
-
if "daumtools.web2app" not in js:
|
133
|
-
return None, None
|
134
|
-
|
135
|
-
js = JSINJECT + js
|
136
|
-
|
137
|
-
ctx = MiniRacer()
|
138
|
-
kakao_url = cast(str, ctx.eval(js))
|
139
|
-
item_code = urlparse(kakao_url).path.split("/")[2]
|
140
|
-
|
141
|
-
# Share link redirect to preview link if use desktop headers
|
142
|
-
# This allows us to find pack author
|
143
|
-
headers_desktop = {"User-Agent": "Chrome"}
|
144
|
-
|
145
|
-
response = requests.get(url, headers=headers_desktop, allow_redirects=True)
|
146
|
-
response.url
|
147
|
-
|
148
|
-
pack_title_url = urlparse(response.url).path.split("/")[-1]
|
149
|
-
pack_info_unauthed = MetadataKakao.get_pack_info_unauthed(pack_title_url)
|
150
|
-
if pack_info_unauthed:
|
151
|
-
self.author = pack_info_unauthed["result"]["artist"]
|
152
|
-
|
153
|
-
return pack_title, item_code
|
154
|
-
|
155
111
|
def download_stickers_kakao(self) -> Tuple[int, int]:
|
156
112
|
self.auth_token = None
|
157
113
|
if self.opt_cred:
|
158
114
|
self.auth_token = self.opt_cred.kakao_auth_token
|
159
115
|
|
160
116
|
if urlparse(self.url).netloc == "emoticon.kakao.com":
|
161
|
-
|
117
|
+
item_code = None
|
118
|
+
if self.auth_token is not None:
|
119
|
+
hash = urlparse(self.url).path.split("/")[-1]
|
120
|
+
item_code = MetadataKakao.get_item_code_from_hash(hash, self.auth_token)
|
162
121
|
|
163
|
-
if
|
164
|
-
|
165
|
-
|
166
|
-
|
122
|
+
# Share link redirect to preview link if use desktop headers
|
123
|
+
# This allows us to find pack author
|
124
|
+
headers_desktop = {"User-Agent": "Chrome"}
|
125
|
+
|
126
|
+
r = requests.get(self.url, headers=headers_desktop, allow_redirects=True)
|
127
|
+
|
128
|
+
self.pack_title = urlparse(r.url).path.split("/")[-1]
|
129
|
+
pack_info_unauthed = MetadataKakao.get_pack_info_unauthed(self.pack_title)
|
130
|
+
if pack_info_unauthed is None:
|
131
|
+
self.cb.put("Download failed: Cannot download metadata for sticker pack")
|
132
|
+
return 0, 0
|
133
|
+
|
134
|
+
self.author = pack_info_unauthed["result"]["artist"]
|
135
|
+
thumbnail_urls = pack_info_unauthed["result"]["thumbnailUrls"]
|
167
136
|
|
168
|
-
|
169
|
-
|
137
|
+
if item_code is None:
|
138
|
+
if self.auth_token is None:
|
139
|
+
self.cb.put("Warning: Downloading animated sticker requires auth_token")
|
140
|
+
else:
|
141
|
+
self.cb.put("Warning: auth_token invalid, cannot download animated sticker")
|
142
|
+
self.cb.put("Downloading static stickers...")
|
143
|
+
self.download_static(thumbnail_urls)
|
144
|
+
else:
|
145
|
+
return self.download_animated(item_code)
|
170
146
|
|
147
|
+
if self.url.isnumeric():
|
171
148
|
self.pack_title = None
|
172
149
|
if self.auth_token:
|
173
150
|
self.pack_info_authed = MetadataKakao.get_pack_info_authed(
|
174
|
-
|
151
|
+
self.url, self.auth_token
|
175
152
|
)
|
176
153
|
if self.pack_info_authed:
|
177
154
|
self.pack_title = self.pack_info_authed["itemUnitInfo"][0]["title"]
|
@@ -182,7 +159,7 @@ class DownloadKakao(DownloadBase):
|
|
182
159
|
)
|
183
160
|
self.cb.put("Continuing without getting pack_title")
|
184
161
|
|
185
|
-
return self.download_animated(
|
162
|
+
return self.download_animated(self.url)
|
186
163
|
|
187
164
|
if urlparse(self.url).netloc == "e.kakao.com":
|
188
165
|
self.pack_title = urlparse(self.url).path.split("/")[-1]
|
@@ -201,7 +178,9 @@ class DownloadKakao(DownloadBase):
|
|
201
178
|
thumbnail_urls = self.pack_info_unauthed["result"]["thumbnailUrls"]
|
202
179
|
|
203
180
|
if self.auth_token:
|
204
|
-
item_code = MetadataKakao.
|
181
|
+
item_code = MetadataKakao.get_item_code_from_title(
|
182
|
+
title_ko, self.auth_token
|
183
|
+
)
|
205
184
|
if item_code:
|
206
185
|
return self.download_animated(item_code)
|
207
186
|
msg = "Warning: Cannot get item code.\n"
|
sticker_convert/job.py
CHANGED
@@ -172,6 +172,10 @@ class Executor:
|
|
172
172
|
try:
|
173
173
|
for process in self.processes:
|
174
174
|
process.join()
|
175
|
+
if process.exitcode != 0 and self.is_cancel_job.value == 0:
|
176
|
+
self.cb_msg(
|
177
|
+
f"Warning: A process exited with error (code {process.exitcode})"
|
178
|
+
)
|
175
179
|
except KeyboardInterrupt:
|
176
180
|
pass
|
177
181
|
|
@@ -52,7 +52,7 @@
|
|
52
52
|
"kakao": {
|
53
53
|
"full_name": "Download from Kakao",
|
54
54
|
"help": "Download kakao stickers from a URL / ID as input",
|
55
|
-
"example": "Example: https://e.kakao.com/t/xxxxx
|
55
|
+
"example": "Example: https://e.kakao.com/t/xxxxx \nOR https://emoticon.kakao.com/items/xxxxx OR 4404400",
|
56
56
|
"address_lbls": "URL address / ID",
|
57
57
|
"metadata_provides": {
|
58
58
|
"title": true,
|
@@ -6,6 +6,7 @@ from typing import Any, Callable, Dict, Optional
|
|
6
6
|
from urllib.parse import parse_qs, urlparse
|
7
7
|
|
8
8
|
import requests
|
9
|
+
from bs4 import BeautifulSoup
|
9
10
|
|
10
11
|
from sticker_convert.job_option import CredOption
|
11
12
|
|
@@ -32,10 +33,10 @@ class GetKakaoAuth:
|
|
32
33
|
self.uuid_c = str(uuid.uuid4())
|
33
34
|
self.device_info = (
|
34
35
|
f"android/30; uuid={self.device_uuid}; ssaid={self.device_ssaid}; "
|
35
|
-
+
|
36
|
+
+ "model=SDK_GPHONE_X86_64; screen_resolution=1080x1920; sim=310260/1/us; onestore=false; uvc3=null"
|
36
37
|
)
|
37
38
|
self.app_platform = "android"
|
38
|
-
self.app_version_number =
|
39
|
+
self.app_version_number = self.get_version()
|
39
40
|
self.app_language = "en"
|
40
41
|
self.app_version = (
|
41
42
|
f"{self.app_platform}/{self.app_version_number}/{self.app_language}"
|
@@ -44,7 +45,7 @@ class GetKakaoAuth:
|
|
44
45
|
self.headers = {
|
45
46
|
"Host": "katalk.kakao.com",
|
46
47
|
"Accept-Language": "en",
|
47
|
-
"User-Agent": "KT/
|
48
|
+
"User-Agent": f"KT/{self.app_version_number} An/11 en",
|
48
49
|
"Device-Info": self.device_info,
|
49
50
|
"A": self.app_version,
|
50
51
|
"C": self.uuid_c,
|
@@ -52,6 +53,20 @@ class GetKakaoAuth:
|
|
52
53
|
"Connection": "close",
|
53
54
|
}
|
54
55
|
|
56
|
+
def get_version(self) -> str:
|
57
|
+
# It is difficult to get app version number from Google Play
|
58
|
+
r = requests.get(
|
59
|
+
"https://apkpure.net/kakaotalk-messenger/com.kakao.talk/versions"
|
60
|
+
)
|
61
|
+
soup = BeautifulSoup(r.text, "html.parser")
|
62
|
+
for li in soup.find_all("li"):
|
63
|
+
a = li.find("a", class_="dt-version-icon")
|
64
|
+
if a is None:
|
65
|
+
continue
|
66
|
+
if "/kakaotalk-messenger/com.kakao.talk/download/" in a.get("href", ""):
|
67
|
+
return a.get("href").split("/")[-1]
|
68
|
+
return "25.2.1"
|
69
|
+
|
55
70
|
def login(self) -> bool:
|
56
71
|
self.cb_msg("Logging in")
|
57
72
|
|
@@ -96,7 +111,6 @@ class GetKakaoAuth:
|
|
96
111
|
"countryCode": self.country_code,
|
97
112
|
"countryIso": self.country_iso,
|
98
113
|
"phoneNumber": self.phone_number,
|
99
|
-
"method": "sms",
|
100
114
|
"termCodes": [],
|
101
115
|
"simPhoneNumber": f"+{self.country_code}{self.phone_number}",
|
102
116
|
}
|
@@ -244,6 +258,21 @@ class GetKakaoAuth:
|
|
244
258
|
self.cb_msg_block(f"Failed at passcode callback: {response.text}")
|
245
259
|
return False
|
246
260
|
|
261
|
+
return True
|
262
|
+
|
263
|
+
def skip_restoration(self) -> bool:
|
264
|
+
self.cb_msg("Skip restoration")
|
265
|
+
|
266
|
+
response = requests.post(
|
267
|
+
"https://katalk.kakao.com/android/account2/skip-restoration",
|
268
|
+
headers=self.headers,
|
269
|
+
)
|
270
|
+
response_json = json.loads(response.text)
|
271
|
+
|
272
|
+
if response_json["status"] != 0:
|
273
|
+
self.cb_msg_block(f"Failed at skip restoration: {response.text}")
|
274
|
+
return False
|
275
|
+
|
247
276
|
self.nickname = response_json.get("viewData", {}).get("nickname")
|
248
277
|
|
249
278
|
if self.nickname is None:
|
@@ -288,6 +317,7 @@ class GetKakaoAuth:
|
|
288
317
|
self.enter_phone,
|
289
318
|
self.confirm_device_change,
|
290
319
|
self.passcode_callback,
|
320
|
+
self.skip_restoration,
|
291
321
|
self.get_profile,
|
292
322
|
)
|
293
323
|
|
@@ -105,7 +105,7 @@ class GetKakaoDesktopAuth:
|
|
105
105
|
return None, msg
|
106
106
|
|
107
107
|
auth_token = None
|
108
|
-
for i in re.finditer(b"
|
108
|
+
for i in re.finditer(b"authorization: ", s):
|
109
109
|
auth_token_addr = i.start() + 15
|
110
110
|
|
111
111
|
auth_token_bytes = s[auth_token_addr : auth_token_addr + 200]
|
@@ -22,9 +22,7 @@ class UrlDetect:
|
|
22
22
|
):
|
23
23
|
return "line"
|
24
24
|
|
25
|
-
if domain in ("e.kakao.com", "emoticon.kakao.com")
|
26
|
-
"kakaotalk://store/emoticon/"
|
27
|
-
):
|
25
|
+
if domain in ("e.kakao.com", "emoticon.kakao.com"):
|
28
26
|
return "kakao"
|
29
27
|
|
30
28
|
if domain == "stickers.viber.com":
|
sticker_convert/version.py
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.4
|
2
2
|
Name: sticker-convert
|
3
|
-
Version: 2.11.
|
3
|
+
Version: 2.11.9
|
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>
|
@@ -371,10 +371,9 @@ Requires-Dist: beautifulsoup4~=4.13.3
|
|
371
371
|
Requires-Dist: cryptg~=0.5.0.post0
|
372
372
|
Requires-Dist: rookiepy~=0.5.6
|
373
373
|
Requires-Dist: httpx~=0.28.1
|
374
|
-
Requires-Dist: imagequant~=1.1.
|
374
|
+
Requires-Dist: imagequant~=1.1.4
|
375
375
|
Requires-Dist: memory-tempfile~=2.2.3
|
376
376
|
Requires-Dist: mergedeep~=1.3.4
|
377
|
-
Requires-Dist: mini-racer~=0.12.4
|
378
377
|
Requires-Dist: numpy>=1.22.4
|
379
378
|
Requires-Dist: Pillow~=11.1.0
|
380
379
|
Requires-Dist: pyoxipng~=9.0.0
|
@@ -384,6 +383,7 @@ Requires-Dist: PyMemoryEditor~=1.5.22
|
|
384
383
|
Requires-Dist: requests~=2.32.3
|
385
384
|
Requires-Dist: rlottie_python~=1.3.6
|
386
385
|
Requires-Dist: signalstickers-client-fork-laggykiller~=3.3.0.post2
|
386
|
+
Requires-Dist: socksio~=1.0.0
|
387
387
|
Requires-Dist: telethon~=1.39.0
|
388
388
|
Requires-Dist: tqdm~=4.67.1
|
389
389
|
Requires-Dist: ttkbootstrap-fork-laggykiller~=1.5.1
|
@@ -436,7 +436,7 @@ Dynamic: license-file
|
|
436
436
|
| [Telegram](docs/guide_telegram.md) | ✅ (Require `token` or telethon) | ✅ (Require `token` & `user_id` or telethon or manually) |
|
437
437
|
| [WhatsApp](docs/guide_whatsapp.md) | ⭕ (By Android or WhatsApp Web) | ⭕ (Create `.wastickers`, import by Sticker Maker) |
|
438
438
|
| [Line](docs/guide_line.md) | ✅ | 🚫 (Need to submit for manual approval) |
|
439
|
-
| [Kakao](docs/guide_kakao.md) | ✅ (Need '
|
439
|
+
| [Kakao](docs/guide_kakao.md) | ✅ (Need 'auth_token' for animated) | 🚫 (Need to submit for manual approval) |
|
440
440
|
| [Viber](docs/guide_viber.md) | ✅ | ✅ (Require `viber_auth`) |
|
441
441
|
| [Discord](docs/guide_discord.md) | ✅ (Require `token`) | 🚫 |
|
442
442
|
| [iMessage](docs/guide_imessage.md) | 🚫 | ⭕ (Create Xcode stickerpack project for sideload) |
|
@@ -461,7 +461,7 @@ Dynamic: license-file
|
|
461
461
|
- For more information: https://github.com/doubleplusc/Line-sticker-downloader
|
462
462
|
- Upload: Not supported. You need to manually submit sticker pack for approval before you can use in app.
|
463
463
|
- Kakao
|
464
|
-
- Download: Supported (e.g. `https://e.kakao.com/t/xxxxx`
|
464
|
+
- Download: Supported (e.g. `https://e.kakao.com/t/xxxxx` OR `https://emoticon.kakao.com/items/xxxxx` OR `4404400`). It is rather complicated, learn more from [docs/guide_kakao.md](docs/guide_kakao.md)
|
465
465
|
- Upload: Not supported. You need to manually submit sticker pack for approval before you can use in app.
|
466
466
|
- Viber
|
467
467
|
- Download: Supported (e.g. `https://stickers.viber.com/pages/example` OR `https://stickers.viber.com/pages/custom-sticker-packs/example`)
|
@@ -549,7 +549,7 @@ Input options:
|
|
549
549
|
OR https://line.me/S/sticker/1234/?lang=en OR line://shop/detail/1234 OR 1234)
|
550
550
|
--download-kakao DOWNLOAD_KAKAO
|
551
551
|
Download kakao stickers from a URL / ID as input
|
552
|
-
(Example: https://e.kakao.com/t/xxxxx
|
552
|
+
(Example: https://e.kakao.com/t/xxxxx
|
553
553
|
OR https://emoticon.kakao.com/items/xxxxx OR 4404400)
|
554
554
|
--download-viber DOWNLOAD_VIBER
|
555
555
|
Download viber stickers from a URL as input
|
@@ -1,16 +1,16 @@
|
|
1
1
|
sticker_convert/__init__.py,sha256=iQnv6UOOA69c3soAn7ZOnAIubTIQSUxtq1Uhh8xRWvU,102
|
2
2
|
sticker_convert/__main__.py,sha256=elDCMvU27letiYs8jPUpxaCq5puURnvcDuqGsAAb6_w,592
|
3
3
|
sticker_convert/cli.py,sha256=MWzq9QJJ7HYBD73DmSgRIPo-u58mTGEIoUUpJKNjI0Q,22358
|
4
|
-
sticker_convert/converter.py,sha256=
|
4
|
+
sticker_convert/converter.py,sha256=aK06RPz5DQb5p-8IvsXqZQrvL6miKt4otX9vcdXBfqc,36784
|
5
5
|
sticker_convert/definitions.py,sha256=ZhP2ALCEud-w9ZZD4c3TDG9eHGPZyaAL7zPUsJAbjtE,2073
|
6
6
|
sticker_convert/gui.py,sha256=D9L-lFif4P4MANglis_wpjkzlUuGPuq8AybWGyPVP8E,33824
|
7
|
-
sticker_convert/job.py,sha256=
|
7
|
+
sticker_convert/job.py,sha256=gEd6yF8WPUR1_7q9SVhnwdD5usrDxwowNnR5q9uS8Yc,28011
|
8
8
|
sticker_convert/job_option.py,sha256=NysZtKVVG7EzRkLnVaeYJY0uNlYKFmjoststB1cvVrY,8020
|
9
|
-
sticker_convert/version.py,sha256=
|
9
|
+
sticker_convert/version.py,sha256=s_bdZbn3ID-sOa5uFfhycit0Dt5g-Qr6b7Ymksvt7wU,47
|
10
10
|
sticker_convert/downloaders/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
11
11
|
sticker_convert/downloaders/download_base.py,sha256=MI5pCT_tkfoaFlrD1oNynDj1Rv1CK0APuNVElTEAEis,5110
|
12
12
|
sticker_convert/downloaders/download_discord.py,sha256=6AFpLAYL2hRvVcsqUtzDUC31U66U02ZcnKXDnZRi2jk,3496
|
13
|
-
sticker_convert/downloaders/download_kakao.py,sha256=
|
13
|
+
sticker_convert/downloaders/download_kakao.py,sha256=3Q8BYAu4kbYTSOd10iB-ym6OwGGjwc8GkDwP0lGnmks,12335
|
14
14
|
sticker_convert/downloaders/download_line.py,sha256=c-hTzEarGQP0b-pnPl29NuSKcaZWUeRo_94YpJzz72M,17911
|
15
15
|
sticker_convert/downloaders/download_signal.py,sha256=3wv-BLd4qggly4AdtwV8f3vUpCVZ-8GnoPLoWngY3Pk,3728
|
16
16
|
sticker_convert/downloaders/download_telegram.py,sha256=iGmOcVjU2Ai19t1lyDY2JhQIc--O5XMyNCGXZAA4DVY,2028
|
@@ -73,7 +73,7 @@ sticker_convert/resources/appicon.png,sha256=6XBEQz7PnerqS43aRkwpWolFG4WvKMuQ-st
|
|
73
73
|
sticker_convert/resources/compression.json,sha256=hZY906wUmdAuflVhUowm9EW6h40BzuD4LBNe-Mpd9V8,14184
|
74
74
|
sticker_convert/resources/emoji.json,sha256=q9DRFdVJfm7feZW7ZM6Xa5P1QsMvrn0PbBVU9jKcJKI,422720
|
75
75
|
sticker_convert/resources/help.json,sha256=oI8OIB0aFKgDw4bTKT69zDNshOjf0-bM5el3nbJTzMs,7225
|
76
|
-
sticker_convert/resources/input.json,sha256=
|
76
|
+
sticker_convert/resources/input.json,sha256=BYHYDqMLZuQnA3MF0ViudGpkSuAG8OMS7L-7hxC3K3o,3858
|
77
77
|
sticker_convert/resources/memdump_linux.sh,sha256=YbdX5C5RyCnoeDUE6JgTo8nQXKhrUw5-kFDx5bQp9tY,651
|
78
78
|
sticker_convert/resources/memdump_windows.ps1,sha256=CfyNSSEW3HJOkTu-mKrP3qh5aprN-1VCBfj-R1fELA0,302
|
79
79
|
sticker_convert/resources/output.json,sha256=SC_3vtEBJ79R7q0vy_p33eLsGFEyBsSOai0Hy7mLqG8,2208
|
@@ -88,10 +88,10 @@ sticker_convert/utils/callback.py,sha256=spYUGlklOs1yPZAxoqwOWgR1sdimpfM8a27if3T
|
|
88
88
|
sticker_convert/utils/chrome_remotedebug.py,sha256=AuAb-wMHiu7RDZ0YWD-WvIUc2CoR_TLsPVj4cdI2Kuw,5056
|
89
89
|
sticker_convert/utils/emoji.py,sha256=AqB26JY-PkYzNwPLReSnqLiQKe-bR9UXnLclAbgubJ8,367
|
90
90
|
sticker_convert/utils/process.py,sha256=EAQZ9WpiKmkvToIv8G1HNY4V7m0jXyyePTmeP2XOZzE,4688
|
91
|
-
sticker_convert/utils/url_detect.py,sha256=
|
91
|
+
sticker_convert/utils/url_detect.py,sha256=vCbhQbcW1X_UtdfQlICGY8pMX34KQ6sCtDJZbp0NrSg,876
|
92
92
|
sticker_convert/utils/auth/get_discord_auth.py,sha256=i5SaXU9Ly6Ci_iBYCYIPcQB5FaAehi9DidB4jbKJMVg,4215
|
93
|
-
sticker_convert/utils/auth/get_kakao_auth.py,sha256=
|
94
|
-
sticker_convert/utils/auth/get_kakao_desktop_auth.py,sha256=
|
93
|
+
sticker_convert/utils/auth/get_kakao_auth.py,sha256=Wok5sp0GGBgTwwlfYB7lVq82ndBAOGTcqsWEaWAXFNE,10760
|
94
|
+
sticker_convert/utils/auth/get_kakao_desktop_auth.py,sha256=BBfFI08cVOmi6akenQwMI0Uiatmn76wI8QYHnbvopxg,5809
|
95
95
|
sticker_convert/utils/auth/get_line_auth.py,sha256=8l8ha2vQmk3rHGvDE7PkcxQXbH3oe62LKbI3qVUtvqc,2196
|
96
96
|
sticker_convert/utils/auth/get_signal_auth.py,sha256=oDTcIUcRM8_zfmR6UoBvzBhIscwLRe7n2zw4aw0j8_Q,4564
|
97
97
|
sticker_convert/utils/auth/get_viber_auth.py,sha256=mUTrcxq5bTrzSXEVaeTPqVQIdZdwvIhrbMgBUb7dU30,8173
|
@@ -107,9 +107,9 @@ sticker_convert/utils/media/apple_png_normalize.py,sha256=LbrQhc7LlYX4I9ek4XJsZE
|
|
107
107
|
sticker_convert/utils/media/codec_info.py,sha256=XoEWBfPWTzr4zSVQIU1XF1yh5viHxH5FytNEpdZR38c,14874
|
108
108
|
sticker_convert/utils/media/decrypt_kakao.py,sha256=4wq9ZDRnFkx1WmFZnyEogBofiLGsWQM_X69HlA36578,1947
|
109
109
|
sticker_convert/utils/media/format_verify.py,sha256=oM32P186tWe9YxvBQRPr8D3FEmBN3b2rEe_2S_MwxyQ,6236
|
110
|
-
sticker_convert-2.11.
|
111
|
-
sticker_convert-2.11.
|
112
|
-
sticker_convert-2.11.
|
113
|
-
sticker_convert-2.11.
|
114
|
-
sticker_convert-2.11.
|
115
|
-
sticker_convert-2.11.
|
110
|
+
sticker_convert-2.11.9.dist-info/licenses/LICENSE,sha256=gXf5dRMhNSbfLPYYTY_5hsZ1r7UU1OaKQEAQUhuIBkM,18092
|
111
|
+
sticker_convert-2.11.9.dist-info/METADATA,sha256=zR97LNr5SeYo7Bn2PbX8uv1yseWKBehqvFcoFv-vAWc,53484
|
112
|
+
sticker_convert-2.11.9.dist-info/WHEEL,sha256=CmyFI0kx5cdEMTLiONQRbGQwjIoR1aIYB7eCAQ4KPJ0,91
|
113
|
+
sticker_convert-2.11.9.dist-info/entry_points.txt,sha256=MNJ7XyC--ugxi5jS1nzjDLGnxCyLuaGdsVLnJhDHCqs,66
|
114
|
+
sticker_convert-2.11.9.dist-info/top_level.txt,sha256=r9vfnB0l1ZnH5pTH5RvkobnK3Ow9m0RsncaOMAtiAtk,16
|
115
|
+
sticker_convert-2.11.9.dist-info/RECORD,,
|
File without changes
|
File without changes
|
File without changes
|