-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathposting_in_tg_channel.py
More file actions
48 lines (42 loc) · 1.64 KB
/
posting_in_tg_channel.py
File metadata and controls
48 lines (42 loc) · 1.64 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
import os
import random
import argparse
import time
from pathlib import Path
from argparse import RawTextHelpFormatter
from dotenv import load_dotenv
import telegram
def create_argparser() -> argparse.Namespace:
parser = argparse.ArgumentParser(
description="""\
Скрипт автоматически публикует фотографии каждые 'period' часов.\n
При отсутсвии параметра 'period' публикация происходит каждые 4 часа.""",
formatter_class=RawTextHelpFormatter
)
parser.add_argument('-period', help='периодичность публикации картинок в часах', type=float, default=4)
return parser.parse_args()
def main():
load_dotenv()
args = create_argparser()
img_folder_path = "images"
telegram_chat_id = os.environ['TELEGRAM_CHAT_ID']
telegram_bot_token = os.environ['TELEGRAM_TOKEN']
bot = telegram.Bot(telegram_bot_token)
while True:
try:
imgs_in_folder=os.listdir(img_folder_path)
if imgs_in_folder:
rand_img_name=random.choice(imgs_in_folder)
filepath = Path(img_folder_path, rand_img_name)
with open(filepath, 'rb') as file:
bot.send_photo(
chat_id=telegram_chat_id,
photo=file
)
else:
print("Images folder is empty!")
except FileNotFoundError:
print("Images folder doesn't exist!")
time.sleep(float(args.period)*3600)
if __name__ == '__main__':
main()