warp-beacon 2.3.0__py3-none-any.whl → 2.3.2__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.
- warp_beacon/__version__.py +1 -1
- warp_beacon/scraper/exceptions.py +1 -1
- warp_beacon/scraper/instagram/instagram.py +11 -3
- warp_beacon/telegram/handlers.py +4 -2
- {warp_beacon-2.3.0.dist-info → warp_beacon-2.3.2.dist-info}/METADATA +11 -3
- {warp_beacon-2.3.0.dist-info → warp_beacon-2.3.2.dist-info}/RECORD +10 -10
- {warp_beacon-2.3.0.dist-info → warp_beacon-2.3.2.dist-info}/LICENSE +0 -0
- {warp_beacon-2.3.0.dist-info → warp_beacon-2.3.2.dist-info}/WHEEL +0 -0
- {warp_beacon-2.3.0.dist-info → warp_beacon-2.3.2.dist-info}/entry_points.txt +0 -0
- {warp_beacon-2.3.0.dist-info → warp_beacon-2.3.2.dist-info}/top_level.txt +0 -0
warp_beacon/__version__.py
CHANGED
@@ -1,2 +1,2 @@
|
|
1
|
-
__version__ = "2.3.
|
1
|
+
__version__ = "2.3.2"
|
2
2
|
|
@@ -11,7 +11,7 @@ class ScraperError(Exception):
|
|
11
11
|
body=getattr(self, "error_type", vars(self)),
|
12
12
|
)
|
13
13
|
super().__init__(self.message, *args, **kwargs)
|
14
|
-
if hasattr(self, "response") and self.response:
|
14
|
+
if hasattr(self, "response") and self.response:
|
15
15
|
self.code = self.response.status_code
|
16
16
|
|
17
17
|
class TimeOut(ScraperError):
|
@@ -33,6 +33,7 @@ INST_SESSION_FILE_TPL = "/var/warp_beacon/inst_session_account_%d.json"
|
|
33
33
|
class InstagramScraper(ScraperAbstract):
|
34
34
|
cl = None
|
35
35
|
inst_session_file = ""
|
36
|
+
timeline_cursor = {}
|
36
37
|
|
37
38
|
def __init__(self, account: tuple, proxy: dict=None) -> None:
|
38
39
|
super().__init__(account, proxy)
|
@@ -71,9 +72,11 @@ class InstagramScraper(ScraperAbstract):
|
|
71
72
|
})
|
72
73
|
|
73
74
|
def safe_write_session(self) -> None:
|
75
|
+
cl_settings = self.cl.get_settings()
|
76
|
+
cl_settings["warp_timeline_cursor"] = self.timeline_cursor
|
74
77
|
tmp_fname = "%s~" % self.inst_session_file
|
75
78
|
with open(tmp_fname, 'w+', encoding="utf-8") as f:
|
76
|
-
f.write(json.dumps(
|
79
|
+
f.write(json.dumps(cl_settings))
|
77
80
|
if os.path.exists(self.inst_session_file):
|
78
81
|
os.unlink(self.inst_session_file)
|
79
82
|
os.rename(tmp_fname, self.inst_session_file)
|
@@ -81,7 +84,12 @@ class InstagramScraper(ScraperAbstract):
|
|
81
84
|
def load_session(self) -> None:
|
82
85
|
if os.path.exists(self.inst_session_file):
|
83
86
|
logging.info("Loading existing session file '%s'", self.inst_session_file)
|
84
|
-
|
87
|
+
with open(self.inst_session_file, 'r', encoding="utf-8") as f:
|
88
|
+
js = json.loads(f.read())
|
89
|
+
if "warp_timeline_cursor" in js:
|
90
|
+
self.timeline_cursor = js.get("warp_timeline_cursor", {})
|
91
|
+
del js["warp_timeline_cursor"]
|
92
|
+
self.cl.set_settings(js)
|
85
93
|
else:
|
86
94
|
self._download_hndlr(self.login)
|
87
95
|
|
@@ -94,7 +102,7 @@ class InstagramScraper(ScraperAbstract):
|
|
94
102
|
|
95
103
|
def validate_session(self) -> None:
|
96
104
|
self.load_session()
|
97
|
-
self._download_hndlr(self.cl.get_timeline_feed)
|
105
|
+
self.timeline_cursor = self._download_hndlr(self.cl.get_timeline_feed, "pull_to_refresh", self.timeline_cursor.get("next_max_id", None))
|
98
106
|
self._download_hndlr(self.cl.get_reels_tray_feed, "pull_to_refresh")
|
99
107
|
self._download_hndlr(self.cl.direct_active_presence)
|
100
108
|
self._download_hndlr(self.cl.reels)
|
warp_beacon/telegram/handlers.py
CHANGED
@@ -175,7 +175,8 @@ class Handlers(object):
|
|
175
175
|
media_type=JobType.COLLECTION,
|
176
176
|
chat_id=chat.id,
|
177
177
|
chat_type=message.chat.type,
|
178
|
-
source_username=Utils.extract_message_author(message)
|
178
|
+
source_username=Utils.extract_message_author(message),
|
179
|
+
message_leftover=msg_leftover
|
179
180
|
)
|
180
181
|
)
|
181
182
|
elif ent_len:
|
@@ -203,7 +204,8 @@ class Handlers(object):
|
|
203
204
|
uniq_id=uniq_id,
|
204
205
|
job_origin=origin,
|
205
206
|
source_username=Utils.extract_message_author(message),
|
206
|
-
chat_type=chat.type
|
207
|
+
chat_type=chat.type,
|
208
|
+
message_leftover=msg_leftover
|
207
209
|
)):
|
208
210
|
self.bot.uploader.set_inprocess(uniq_id)
|
209
211
|
|
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.2
|
2
2
|
Name: warp_beacon
|
3
|
-
Version: 2.3.
|
3
|
+
Version: 2.3.2
|
4
4
|
Summary: Telegram bot for expanding external media links
|
5
5
|
Home-page: https://github.com/sb0y/warp_beacon
|
6
6
|
Author: Andrey Bagrintsev
|
@@ -277,12 +277,16 @@ TG_BOT_ADMIN_USERNAME=""
|
|
277
277
|
###
|
278
278
|
INSTAGRAM_LOGIN="instagram login (email or cell phone)"
|
279
279
|
INSTAGRAM_PASSWORD="instgram password"
|
280
|
-
INSTAGRAM_VERIFICATION_CODE="instagram 2FA if required, default empty"
|
281
280
|
MONGODB_HOST="mongodb"
|
282
281
|
MONGODB_PORT="27017"
|
283
282
|
MONGODB_USER="root"
|
284
283
|
MONGODB_PASSWORD="changeme"
|
285
|
-
|
284
|
+
# more information about accounts.json and proxies.json
|
285
|
+
# can be found in project wiki
|
286
|
+
# https://github.com/sb0y/warp_beacon/wiki/Introduction-in-account.json-file
|
287
|
+
SERVICE_ACCOUNTS_FILE=/var/warp_beacon/accounts.json
|
288
|
+
PROXY_FILE=/var/warp_beacon/proxies.json
|
289
|
+
|
286
290
|
# workers settings
|
287
291
|
# default: min(32, os.cpu_count() + 4)
|
288
292
|
#TG_WORKERS_POOL_SIZE=3
|
@@ -399,6 +403,10 @@ build deb file
|
|
399
403
|
dpkg-buildpackage -us -uc -b
|
400
404
|
```
|
401
405
|
|
406
|
+
# Wiki
|
407
|
+
* [MongoDB backup and restore](https://github.com/sb0y/warp_beacon/wiki/MongoDB-backup-and-restore)
|
408
|
+
* [Introduction in account.json file](https://github.com/sb0y/warp_beacon/wiki/Introduction-in-account.json-file)
|
409
|
+
|
402
410
|
# Support Warp Beacon project
|
403
411
|
|
404
412
|
[<img src="https://cdn.cryptocloud.plus/brand/cc-group-black.png" alt="CryptoCloud Accepted" width="250px">](https://pay.cryptocloud.plus/pos/W5BMtNQt5bJFoW2E)
|
@@ -4,7 +4,7 @@ var/warp_beacon/accounts.json,sha256=OsXdncs6h88xrF_AP6_WDCK1waGBn9SR-uYdIeK37GM
|
|
4
4
|
var/warp_beacon/placeholder.gif,sha256=cE5CGJVaop4Sx21zx6j4AyoHU0ncmvQuS2o6hJfEH88,6064
|
5
5
|
var/warp_beacon/proxies.json,sha256=VnjlQDXumOEq72ZFjbh6IqHS1TEHqn8HPYAZqWCeSIA,95
|
6
6
|
warp_beacon/__init__.py,sha256=_rThNODmz0nDp_n4mWo_HKaNFE5jk1_7cRhHyYaencI,163
|
7
|
-
warp_beacon/__version__.py,sha256=
|
7
|
+
warp_beacon/__version__.py,sha256=JfKUaL7n98eqlX_JI_xJDb_8DEBmEFvzpBEfmwkle3Y,23
|
8
8
|
warp_beacon/warp_beacon.py,sha256=7KEtZDj-pdhtl6m-zFLsSojs1ZR4o7L0xbqtdmYPvfE,342
|
9
9
|
warp_beacon/compress/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
10
10
|
warp_beacon/compress/video.py,sha256=_PDMVYCyzLYxHv1uZmmzGcG_8rjaZr7BTXsXTTy_oS4,2846
|
@@ -23,11 +23,11 @@ warp_beacon/scheduler/scheduler.py,sha256=F9jF6myIHOI0TmC0-rBt2Un8gVvuhBW9zL-nEA
|
|
23
23
|
warp_beacon/scraper/__init__.py,sha256=V_C5SmAmRtjFfVBtTotOHCW3ILMQ8m_ulrBF6ry59_A,16944
|
24
24
|
warp_beacon/scraper/abstract.py,sha256=6A6KuBUHZhu8VAyBwLgmnxMPHJcLpgwLapmULy8hpoA,2726
|
25
25
|
warp_beacon/scraper/account_selector.py,sha256=_4x28QeSSc27bOpWab8vLdmJNKk3DF66A3GHCaqxJWU,4237
|
26
|
-
warp_beacon/scraper/exceptions.py,sha256=
|
26
|
+
warp_beacon/scraper/exceptions.py,sha256=Qkz76yo-X5kucEZIP9tWaK-oYO-kvsPEl8Y0W63oDhU,1300
|
27
27
|
warp_beacon/scraper/fail_handler.py,sha256=_blvckfTZ4xWVancQKVRXH5ClKGwfrBxMwvXIFZh1qA,975
|
28
28
|
warp_beacon/scraper/link_resolver.py,sha256=Rc9ZuMyOo3iPywDHwjngy-WRQ2SXhJwxcg-5ripx7tM,2447
|
29
29
|
warp_beacon/scraper/instagram/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
30
|
-
warp_beacon/scraper/instagram/instagram.py,sha256=
|
30
|
+
warp_beacon/scraper/instagram/instagram.py,sha256=b10mk8IGX9vDKcMVrCXvcELUSEmwOLUJJVKOuFTQSa8,13592
|
31
31
|
warp_beacon/scraper/youtube/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
32
32
|
warp_beacon/scraper/youtube/abstract.py,sha256=cBtExei2Cb3o4YBtHqi8If_FdmE6NyJqNKacm5aw7S0,9243
|
33
33
|
warp_beacon/scraper/youtube/music.py,sha256=qbijpSv54fsrIYHeY-nfmw4vo6oBmedQHsVG8pXNfrc,1380
|
@@ -37,13 +37,13 @@ warp_beacon/storage/__init__.py,sha256=2uvyIR0APIW6gOxwJRvCji7wS2q6I7dghvLyWsRqR
|
|
37
37
|
warp_beacon/storage/mongo.py,sha256=qC4ZiO8XXvPnP0rJwz4CJx42pqFsyAjCiW10W5QdT6E,527
|
38
38
|
warp_beacon/telegram/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
39
39
|
warp_beacon/telegram/bot.py,sha256=9HchhsYV_Ky2uTrovp-T6TLx5E8fC65ISZ28UraIcXg,15641
|
40
|
-
warp_beacon/telegram/handlers.py,sha256=
|
40
|
+
warp_beacon/telegram/handlers.py,sha256=sefkG9jU85m4oMxkJ8WqA4aiJLLBv98OIgYxY49c1Rs,7627
|
41
41
|
warp_beacon/telegram/placeholder_message.py,sha256=wN9-BRiyrtHG-EvXtZkGJHt2CX71munQ57ITttjt0mw,6400
|
42
42
|
warp_beacon/telegram/utils.py,sha256=6oEOEzyN9fAmUZVbk5sjFyHcsPrrb2IlI3zXnRCwjHU,2403
|
43
43
|
warp_beacon/uploader/__init__.py,sha256=5KRWsxPRGuQ56YhCEnJsXnb-yQp8dpvWEsPDf0dD-fw,4964
|
44
|
-
warp_beacon-2.3.
|
45
|
-
warp_beacon-2.3.
|
46
|
-
warp_beacon-2.3.
|
47
|
-
warp_beacon-2.3.
|
48
|
-
warp_beacon-2.3.
|
49
|
-
warp_beacon-2.3.
|
44
|
+
warp_beacon-2.3.2.dist-info/LICENSE,sha256=xx0jnfkXJvxRnG63LTGOxlggYnIysveWIZ6H3PNdCrQ,11357
|
45
|
+
warp_beacon-2.3.2.dist-info/METADATA,sha256=NRiJouz-RpEyGITvSGGFCBuujXa49y23DW_35dabMUw,21703
|
46
|
+
warp_beacon-2.3.2.dist-info/WHEEL,sha256=jB7zZ3N9hIM9adW7qlTAyycLYW9npaWKLRzaoVcLKcM,91
|
47
|
+
warp_beacon-2.3.2.dist-info/entry_points.txt,sha256=eSB61Rb89d56WY0O-vEIQwkn18J-4CMrJcLA_R_8h3g,119
|
48
|
+
warp_beacon-2.3.2.dist-info/top_level.txt,sha256=XusFB1mGUStI2gqbtRuJzQrfrAXmdMaT3QTyfvdLEXI,1064
|
49
|
+
warp_beacon-2.3.2.dist-info/RECORD,,
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|