initial
This commit is contained in:
69
send_daily_msg.py
Normal file
69
send_daily_msg.py
Normal file
@@ -0,0 +1,69 @@
|
||||
import httpx
|
||||
import asyncio
|
||||
import sqlite3
|
||||
|
||||
url = 'http://94.177.199.207:3000/client'
|
||||
session = 'AssistenzaPubblicaBardiProd'
|
||||
contactDB = 'contacts.db'
|
||||
createContactsTable = [
|
||||
'DROP TABLE IF EXISTS contacts;',
|
||||
'''
|
||||
CREATE TABLE contacts (
|
||||
id INTEGER PRIMARY KEY,
|
||||
name text NOT NULL,
|
||||
number text NOT NULL,
|
||||
pushname text NOT NULL,
|
||||
shortName text NOT NULL,
|
||||
serialized text NOT NULL
|
||||
);
|
||||
'''
|
||||
]
|
||||
|
||||
def createContactsDB():
|
||||
try:
|
||||
with sqlite3.connect(contactDB) as conn:
|
||||
cursor = conn.cursor()
|
||||
for sql in createContactsTable:
|
||||
cursor.execute(sql)
|
||||
print("Tables created successfully.")
|
||||
except sqlite3.OperationalError as e:
|
||||
print("Failed to create tables:", e)
|
||||
|
||||
async def fetch(client, url):
|
||||
response = await client.get(url)
|
||||
return response.json()
|
||||
|
||||
def getContactList():
|
||||
api = f'{url}/getContacts/{session}'
|
||||
with httpx.Client() as client:
|
||||
response = client.get(api)
|
||||
return response.json()
|
||||
|
||||
def init_db():
|
||||
createContactsDB()
|
||||
contactList = getContactList()
|
||||
try:
|
||||
with sqlite3.connect(contactDB) as conn:
|
||||
for id, contact in enumerate([item for item in contactList["contacts"] if str(item['number']).startswith('39')]):
|
||||
conn.execute(f'''INSERT INTO contacts (id, name, number, pushname, shortName, serialized) VALUES ({id},
|
||||
"{contact.get("name", "N/A")}", {contact.get("number")}, "{contact.get("pushname", "N/A")}",
|
||||
"{contact.get("shortName", "N/A")}", "{contact["id"]["_serialized"]}")''')
|
||||
conn.commit()
|
||||
print("Tables loaded successfully.")
|
||||
except sqlite3.OperationalError as e:
|
||||
print("Failed to load table:", e)
|
||||
|
||||
async def main():
|
||||
init_db()
|
||||
'''
|
||||
async with httpx.AsyncClient() as client:
|
||||
tasks = fetch(client, url)
|
||||
results = await asyncio.gather(*tasks)
|
||||
for result in results:
|
||||
print(result)
|
||||
'''
|
||||
|
||||
|
||||
if __name__ == '__main__':
|
||||
asyncio.run(main())
|
||||
|
||||
Reference in New Issue
Block a user