57 lines
2.1 KiB
Python
57 lines
2.1 KiB
Python
|
import sys
|
||
|
from typing import Tuple, List
|
||
|
|
||
|
from pyrogram_rockserver_storage import RockServerStorage
|
||
|
import asyncio
|
||
|
import json
|
||
|
|
||
|
slaveId = sys.argv[1]
|
||
|
|
||
|
async def main():
|
||
|
await storage.open()
|
||
|
|
||
|
# Reading from a JSON Lines file
|
||
|
with open(f"pyrogram_session_dtg-slave-{slaveId}.json", 'r') as file:
|
||
|
for line in file:
|
||
|
data_entry = json.loads(line)
|
||
|
# Process each data_entry as a Python dict
|
||
|
print(data_entry)
|
||
|
await storage.dc_id(data_entry['dc_id'])
|
||
|
await storage.api_id(data_entry['api_id'])
|
||
|
await storage.test_mode(data_entry['test_mode'])
|
||
|
await storage.auth_key(bytes.fromhex(data_entry['auth_key'][2:]))
|
||
|
await storage.date(data_entry['date'])
|
||
|
await storage.user_id(data_entry['user_id'])
|
||
|
await storage.is_bot(data_entry['is_bot'])
|
||
|
progress = 0
|
||
|
def f() -> List[Tuple[int, int, str, str, str]]:
|
||
|
return []
|
||
|
def ff(a: int, b: int, c: str, d: str, e: str, f: int) -> Tuple[int, int, str, str, str]:
|
||
|
return (a, b, c, d, e, f)
|
||
|
# Reading from a JSON Lines file
|
||
|
with open(f"peers_dtg-slave-{slaveId}.json", 'r') as file:
|
||
|
buf: List[Tuple[int, int, str, str, str]] = f()
|
||
|
for line in file:
|
||
|
progress += 1
|
||
|
data_entry = json.loads(line)
|
||
|
buf.append(ff(data_entry['id'], data_entry['access_hash'],
|
||
|
data_entry['type'], data_entry['username'],
|
||
|
data_entry['phone_number'], data_entry['last_update_on']))
|
||
|
if (len(buf) > 10000):
|
||
|
await storage.update_peers(buf)
|
||
|
buf.clear()
|
||
|
if progress % 10000 == 0:
|
||
|
print(f"Progress: {progress}")
|
||
|
if (len(buf) > 0):
|
||
|
await storage.update_peers(buf)
|
||
|
buf.clear()
|
||
|
exit(1)
|
||
|
|
||
|
|
||
|
print("initializing rockserver storage")
|
||
|
storage = RockServerStorage(save_user_peers=False, hostname="db.local", port=5332, session_unique_name=f"dtg-slave-{slaveId}")
|
||
|
print("initialized rockserver storage")
|
||
|
loop = asyncio.get_event_loop()
|
||
|
loop.run_until_complete(main())
|
||
|
print("done")
|