mirror of
https://github.com/alfem/telegram-download-daemon.git
synced 2025-03-01 16:43:06 +08:00
Yapf default formatting
This commit is contained in:
parent
7996dfdeaf
commit
92cba7798e
2 changed files with 56 additions and 17 deletions
|
@ -5,8 +5,10 @@ TELEGRAM_DAEMON_SESSION_PATH = getenv("TELEGRAM_DAEMON_SESSION_PATH")
|
||||||
sessionName = "DownloadDaemon"
|
sessionName = "DownloadDaemon"
|
||||||
stringSessionFilename = f"{sessionName}.session"
|
stringSessionFilename = f"{sessionName}.session"
|
||||||
|
|
||||||
|
|
||||||
def _getStringSessionIfExists():
|
def _getStringSessionIfExists():
|
||||||
sessionPath = path.join(TELEGRAM_DAEMON_SESSION_PATH, stringSessionFilename)
|
sessionPath = path.join(TELEGRAM_DAEMON_SESSION_PATH,
|
||||||
|
stringSessionFilename)
|
||||||
if path.isfile(sessionPath):
|
if path.isfile(sessionPath):
|
||||||
with open(sessionPath, 'r') as file:
|
with open(sessionPath, 'r') as file:
|
||||||
session = file.read()
|
session = file.read()
|
||||||
|
@ -14,15 +16,18 @@ def _getStringSessionIfExists():
|
||||||
return session
|
return session
|
||||||
return None
|
return None
|
||||||
|
|
||||||
|
|
||||||
def getSession():
|
def getSession():
|
||||||
if TELEGRAM_DAEMON_SESSION_PATH == None:
|
if TELEGRAM_DAEMON_SESSION_PATH == None:
|
||||||
return sessionName
|
return sessionName
|
||||||
|
|
||||||
return StringSession(_getStringSessionIfExists())
|
return StringSession(_getStringSessionIfExists())
|
||||||
|
|
||||||
|
|
||||||
def saveSession(session):
|
def saveSession(session):
|
||||||
if TELEGRAM_DAEMON_SESSION_PATH != None:
|
if TELEGRAM_DAEMON_SESSION_PATH != None:
|
||||||
sessionPath = path.join(TELEGRAM_DAEMON_SESSION_PATH, stringSessionFilename)
|
sessionPath = path.join(TELEGRAM_DAEMON_SESSION_PATH,
|
||||||
|
stringSessionFilename)
|
||||||
with open(sessionPath, 'w') as file:
|
with open(sessionPath, 'w') as file:
|
||||||
file.write(StringSession.save(session))
|
file.write(StringSession.save(session))
|
||||||
print(f"Session saved in {sessionPath}")
|
print(f"Session saved in {sessionPath}")
|
||||||
|
|
|
@ -11,7 +11,8 @@ from telethon import TelegramClient, events
|
||||||
from telethon.tl.types import PeerChannel
|
from telethon.tl.types import PeerChannel
|
||||||
import logging
|
import logging
|
||||||
|
|
||||||
logging.basicConfig(format='[%(levelname) 5s/%(asctime)s]%(name)s:%(message)s',level=logging.WARNING)
|
logging.basicConfig(format='[%(levelname) 5s/%(asctime)s]%(name)s:%(message)s',
|
||||||
|
level=logging.WARNING)
|
||||||
|
|
||||||
import argparse
|
import argparse
|
||||||
import asyncio
|
import asyncio
|
||||||
|
@ -22,11 +23,38 @@ TELEGRAM_DAEMON_CHANNEL = getenv("TELEGRAM_DAEMON_CHANNEL")
|
||||||
|
|
||||||
TELEGRAM_DAEMON_SESSION_PATH = getenv("TELEGRAM_DAEMON_SESSION_PATH")
|
TELEGRAM_DAEMON_SESSION_PATH = getenv("TELEGRAM_DAEMON_SESSION_PATH")
|
||||||
|
|
||||||
parser = argparse.ArgumentParser(description="Script to download files from Telegram Channel.")
|
parser = argparse.ArgumentParser(
|
||||||
parser.add_argument("--api-id", required=TELEGRAM_DAEMON_API_ID == None, type=int, default=TELEGRAM_DAEMON_API_ID, help='api_id from https://core.telegram.org/api/obtaining_api_id (default is TELEGRAM_DAEMON_API_ID env var)')
|
description="Script to download files from Telegram Channel.")
|
||||||
parser.add_argument("--api-hash", required=TELEGRAM_DAEMON_API_HASH == None, type=str, default=TELEGRAM_DAEMON_API_HASH, help='api_hash from https://core.telegram.org/api/obtaining_api_id (default is TELEGRAM_DAEMON_API_HASH env var)')
|
parser.add_argument(
|
||||||
parser.add_argument("--dest", type=str, default=getenv("TELEGRAM_DAEMON_DEST", "/telegram-downloads"), help='Destenation path for downloading files (default is /telegram-downloads).')
|
"--api-id",
|
||||||
parser.add_argument("--channel", required=TELEGRAM_DAEMON_CHANNEL == None, type=int, default=TELEGRAM_DAEMON_CHANNEL, help='Channel id to download from it (default is TELEGRAM_DAEMON_CHANNEL env var')
|
required=TELEGRAM_DAEMON_API_ID == None,
|
||||||
|
type=int,
|
||||||
|
default=TELEGRAM_DAEMON_API_ID,
|
||||||
|
help=
|
||||||
|
'api_id from https://core.telegram.org/api/obtaining_api_id (default is TELEGRAM_DAEMON_API_ID env var)'
|
||||||
|
)
|
||||||
|
parser.add_argument(
|
||||||
|
"--api-hash",
|
||||||
|
required=TELEGRAM_DAEMON_API_HASH == None,
|
||||||
|
type=str,
|
||||||
|
default=TELEGRAM_DAEMON_API_HASH,
|
||||||
|
help=
|
||||||
|
'api_hash from https://core.telegram.org/api/obtaining_api_id (default is TELEGRAM_DAEMON_API_HASH env var)'
|
||||||
|
)
|
||||||
|
parser.add_argument(
|
||||||
|
"--dest",
|
||||||
|
type=str,
|
||||||
|
default=getenv("TELEGRAM_DAEMON_DEST", "/telegram-downloads"),
|
||||||
|
help=
|
||||||
|
'Destenation path for downloading files (default is /telegram-downloads).')
|
||||||
|
parser.add_argument(
|
||||||
|
"--channel",
|
||||||
|
required=TELEGRAM_DAEMON_CHANNEL == None,
|
||||||
|
type=int,
|
||||||
|
default=TELEGRAM_DAEMON_CHANNEL,
|
||||||
|
help=
|
||||||
|
'Channel id to download from it (default is TELEGRAM_DAEMON_CHANNEL env var'
|
||||||
|
)
|
||||||
args = parser.parse_args()
|
args = parser.parse_args()
|
||||||
|
|
||||||
api_id = args.api_id
|
api_id = args.api_id
|
||||||
|
@ -36,18 +64,21 @@ downloadFolder = args.dest
|
||||||
|
|
||||||
# Edit these lines:
|
# Edit these lines:
|
||||||
proxy = None
|
proxy = None
|
||||||
# End of interesting parameters
|
|
||||||
|
|
||||||
|
|
||||||
|
# End of interesting parameters
|
||||||
async def sendHelloMessage(client, peerChannel):
|
async def sendHelloMessage(client, peerChannel):
|
||||||
entity = await client.get_entity(peerChannel)
|
entity = await client.get_entity(peerChannel)
|
||||||
await client.send_message(entity, "Hi! Ready for you files!")
|
await client.send_message(entity, "Hi! Ready for you files!")
|
||||||
|
|
||||||
|
|
||||||
async def log_respond(event, respond):
|
async def log_respond(event, respond):
|
||||||
print(respond)
|
print(respond)
|
||||||
await event.respond(respond)
|
await event.respond(respond)
|
||||||
|
|
||||||
|
|
||||||
with TelegramClient(getSession(), api_id, api_hash, proxy=proxy).start() as client:
|
with TelegramClient(getSession(), api_id, api_hash,
|
||||||
|
proxy=proxy).start() as client:
|
||||||
|
|
||||||
saveSession(client.session)
|
saveSession(client.session)
|
||||||
|
|
||||||
|
@ -58,18 +89,21 @@ with TelegramClient(getSession(), api_id, api_hash, proxy=proxy).start() as clie
|
||||||
|
|
||||||
if event.to_id != peerChannel:
|
if event.to_id != peerChannel:
|
||||||
return
|
return
|
||||||
|
|
||||||
print(event)
|
print(event)
|
||||||
|
|
||||||
if event.media:
|
if event.media:
|
||||||
filename=event.media.document.attributes[0].file_name
|
filename = event.media.document.attributes[0].file_name
|
||||||
await log_respond(event, f"Downloading file {filename} ({event.media.document.size} bytes)")
|
await log_respond(
|
||||||
|
event,
|
||||||
|
f"Downloading file {filename} ({event.media.document.size} bytes)"
|
||||||
|
)
|
||||||
|
|
||||||
await client.download_media(event.message, downloadFolder)
|
await client.download_media(event.message, downloadFolder)
|
||||||
await log_respond(event, f"{filename} ready")
|
await log_respond(event, f"{filename} ready")
|
||||||
|
|
||||||
async def start():
|
async def start():
|
||||||
await sendHelloMessage(client, peerChannel)
|
await sendHelloMessage(client, peerChannel)
|
||||||
await client.run_until_disconnected()
|
await client.run_until_disconnected()
|
||||||
|
|
||||||
client.loop.run_until_complete(start())
|
client.loop.run_until_complete(start())
|
||||||
|
|
Loading…
Reference in a new issue