├── config.py ├── arial.ttf ├── README.md ├── Pipfile ├── main.py ├── generate_time_images.py └── Pipfile.lock /config.py: -------------------------------------------------------------------------------- 1 | api_id = 123456 2 | api_hash = 'abcdefg123456' 3 | -------------------------------------------------------------------------------- /arial.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aforizm/avatar-change-time/HEAD/arial.ttf -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # avatar-change-time 2 | Shows the current time on the avatar telegram 3 | 4 | use: 5 | telethon 6 | pillow 7 | -------------------------------------------------------------------------------- /Pipfile: -------------------------------------------------------------------------------- 1 | [[source]] 2 | name = "pypi" 3 | url = "https://pypi.org/simple" 4 | verify_ssl = true 5 | 6 | [dev-packages] 7 | 8 | [packages] 9 | telethon = "*" 10 | pillow = "==7.1.2" 11 | 12 | [requires] 13 | python_version = "3.6" 14 | -------------------------------------------------------------------------------- /main.py: -------------------------------------------------------------------------------- 1 | """ 2 | Сделано на основе поста https://habr.com/ru/post/457078/ (@mumtozvalijonov) 3 | 4 | с моими небольшими доработками 5 | """ 6 | from telethon import TelegramClient, sync 7 | from telethon.tl.functions.photos import UploadProfilePhotoRequest, DeletePhotosRequest 8 | from datetime import datetime 9 | import time 10 | from config import * 11 | from generate_time_images import * 12 | 13 | client = TelegramClient('my_session9911', api_id, api_hash) 14 | client.start() 15 | 16 | while True: 17 | change_img() 18 | client(DeletePhotosRequest(client.get_profile_photos('me'))) 19 | file = client.upload_file(f"time.png") 20 | client(UploadProfilePhotoRequest(file)) 21 | time.sleep(30) 22 | 23 | if __name__ == '__main__': 24 | pass 25 | -------------------------------------------------------------------------------- /generate_time_images.py: -------------------------------------------------------------------------------- 1 | import time 2 | from PIL import ImageDraw, Image, ImageFont 3 | from datetime import datetime, timedelta 4 | 5 | FONT_SIZE = 50 6 | TEXT_Y_POSITION = 1 7 | TEXT_X_POSITION = 1 8 | MOSCOW_UTC = 3 #for servers heroku 9 | 10 | def convert_time_to_string(dt): 11 | dt += timedelta(hours=MOSCOW_UTC) 12 | return f"{dt.hour}:{dt.minute:02}" 13 | 14 | def change_img(): 15 | start_time = datetime.utcnow() 16 | text = convert_time_to_string(start_time) 17 | row = Image.new('RGBA', (200, 200), "white") 18 | parsed = ImageDraw.Draw(row) 19 | font = ImageFont.truetype("arial.ttf", FONT_SIZE) 20 | font2 = ImageFont.truetype("arial.ttf", 18) 21 | parsed.text((int(row.size[0]*0.2), int(row.size[1]*0.35)), f'{text}', 22 | align="center", font=font, fill=(33,33,212)) 23 | parsed.text((53, 125),'Moscow time', 24 | align="center", font=font2, fill=(33,33,212)) 25 | row.save(f'time.png', "PNG") 26 | 27 | if __name__ == '__main__': 28 | change_img() 29 | -------------------------------------------------------------------------------- /Pipfile.lock: -------------------------------------------------------------------------------- 1 | { 2 | "_meta": { 3 | "hash": { 4 | "sha256": "06de98f0e67e850a41aa883670dfefbb20fdb0c4510c1599fb465f7074279f0d" 5 | }, 6 | "pipfile-spec": 6, 7 | "requires": { 8 | "python_version": "3.6" 9 | }, 10 | "sources": [ 11 | { 12 | "name": "pypi", 13 | "url": "https://pypi.org/simple", 14 | "verify_ssl": true 15 | } 16 | ] 17 | }, 18 | "default": { 19 | "pillow": { 20 | "hashes": [ 21 | "sha256:04766c4930c174b46fd72d450674612ab44cca977ebbcc2dde722c6933290107", 22 | "sha256:0e2a3bceb0fd4e0cb17192ae506d5f082b309ffe5fc370a5667959c9b2f85fa3", 23 | "sha256:0f01e63c34f0e1e2580cc0b24e86a5ccbbfa8830909a52ee17624c4193224cd9", 24 | "sha256:12e4bad6bddd8546a2f9771485c7e3d2b546b458ae8ff79621214119ac244523", 25 | "sha256:1f694e28c169655c50bb89a3fa07f3b854d71eb47f50783621de813979ba87f3", 26 | "sha256:3d25dd8d688f7318dca6d8cd4f962a360ee40346c15893ae3b95c061cdbc4079", 27 | "sha256:4b02b9c27fad2054932e89f39703646d0c543f21d3cc5b8e05434215121c28cd", 28 | "sha256:9744350687459234867cbebfe9df8f35ef9e1538f3e729adbd8fde0761adb705", 29 | "sha256:a0b49960110bc6ff5fead46013bcb8825d101026d466f3a4de3476defe0fb0dd", 30 | "sha256:ae2b270f9a0b8822b98655cb3a59cdb1bd54a34807c6c56b76dd2e786c3b7db3", 31 | "sha256:b37bb3bd35edf53125b0ff257822afa6962649995cbdfde2791ddb62b239f891", 32 | "sha256:b532bcc2f008e96fd9241177ec580829dee817b090532f43e54074ecffdcd97f", 33 | "sha256:b67a6c47ed963c709ed24566daa3f95a18f07d3831334da570c71da53d97d088", 34 | "sha256:b943e71c2065ade6fef223358e56c167fc6ce31c50bc7a02dd5c17ee4338e8ac", 35 | "sha256:ccc9ad2460eb5bee5642eaf75a0438d7f8887d484490d5117b98edd7f33118b7", 36 | "sha256:d23e2aa9b969cf9c26edfb4b56307792b8b374202810bd949effd1c6e11ebd6d", 37 | "sha256:eaa83729eab9c60884f362ada982d3a06beaa6cc8b084cf9f76cae7739481dfa", 38 | "sha256:ee94fce8d003ac9fd206496f2707efe9eadcb278d94c271f129ab36aa7181344", 39 | "sha256:f455efb7a98557412dc6f8e463c1faf1f1911ec2432059fa3e582b6000fc90e2", 40 | "sha256:f46e0e024346e1474083c729d50de909974237c72daca05393ee32389dabe457", 41 | "sha256:f54be399340aa602066adb63a86a6a5d4f395adfdd9da2b9a0162ea808c7b276", 42 | "sha256:f784aad988f12c80aacfa5b381ec21fd3f38f851720f652b9f33facc5101cf4d" 43 | ], 44 | "index": "pypi", 45 | "version": "==7.1.2" 46 | }, 47 | "pyaes": { 48 | "hashes": [ 49 | "sha256:02c1b1405c38d3c370b085fb952dd8bea3fadcee6411ad99f312cc129c536d8f" 50 | ], 51 | "version": "==1.6.1" 52 | }, 53 | "pyasn1": { 54 | "hashes": [ 55 | "sha256:39c7e2ec30515947ff4e87fb6f456dfc6e84857d34be479c9d4a4ba4bf46aa5d", 56 | "sha256:aef77c9fb94a3ac588e87841208bdec464471d9871bd5050a287cc9a475cd0ba" 57 | ], 58 | "version": "==0.4.8" 59 | }, 60 | "rsa": { 61 | "hashes": [ 62 | "sha256:14ba45700ff1ec9eeb206a2ce76b32814958a98e372006c8fb76ba820211be66", 63 | "sha256:1a836406405730121ae9823e19c6e806c62bbad73f890574fff50efa4122c487" 64 | ], 65 | "version": "==4.0" 66 | }, 67 | "telethon": { 68 | "hashes": [ 69 | "sha256:9a51c5ceba6c60a7c1ef0a26e0a63e1d88c8792c92fe7697a3ad6b0be42c2edc", 70 | "sha256:a4ce0699c6aa88500cdf1ed89398949614ceb4b45ea7d62b38049d18a8852fec" 71 | ], 72 | "index": "pypi", 73 | "version": "==1.13.0" 74 | } 75 | }, 76 | "develop": {} 77 | } 78 | --------------------------------------------------------------------------------