| |
| |
| |
| |
| |
| |
|
|
|
|
| import asyncio |
| import os |
| import random |
| from random import shuffle |
|
|
| from telethon.tl.functions.photos import UploadProfilePhotoRequest |
|
|
| from pyUltroid.fns.helper import download_file |
| from pyUltroid.fns.tools import get_google_images |
|
|
| from . import LOGS, get_help, get_string, udB, ultroid_bot, ultroid_cmd |
|
|
| __doc__ = get_help("help_autopic") |
|
|
|
|
| @ultroid_cmd(pattern="autopic( (.*)|$)") |
| async def autopic(e): |
| search = e.pattern_match.group(1).strip() |
| if udB.get_key("AUTOPIC") and not search: |
| udB.del_key("AUTOPIC") |
| return await e.eor(get_string("autopic_5")) |
| if not search: |
| return await e.eor(get_string("autopic_1"), time=5) |
| e = await e.eor(get_string("com_1")) |
| gi = googleimagesdownload() |
| args = { |
| "keywords": search, |
| "limit": 50, |
| "format": "jpg", |
| "output_directory": "./resources/downloads/", |
| } |
| try: |
| pth = await gi.download(args) |
| ok = pth[0][search] |
| except Exception as er: |
| LOGS.exception(er) |
| return await e.eor(str(er)) |
| if not ok: |
| return await e.eor(get_string("autopic_2").format(search), time=5) |
| await e.eor(get_string("autopic_3").format(search)) |
| udB.set_key("AUTOPIC", search) |
| SLEEP_TIME = udB.get_key("SLEEP_TIME") or 1221 |
| while True: |
| for lie in ok: |
| if udB.get_key("AUTOPIC") != search: |
| return |
| file = await e.client.upload_file(lie) |
| await e.client(UploadProfilePhotoRequest(file)) |
| await asyncio.sleep(SLEEP_TIME) |
| shuffle(ok) |
|
|
|
|
| if search := udB.get_key("AUTOPIC"): |
| images = {} |
| sleep = udB.get_key("SLEEP_TIME") or 1221 |
|
|
| async def autopic_func(): |
| search = udB.get_key("AUTOPIC") |
| if images.get(search) is None: |
| images[search] = await get_google_images(search) |
| if not images.get(search): |
| return |
| img = random.choice(images[search]) |
| filee = await download_file(img["original"], "resources/downloads/autopic.jpg") |
| file = await ultroid_bot.upload_file(filee) |
| await ultroid_bot(UploadProfilePhotoRequest(file)) |
| os.remove(filee) |
|
|
| try: |
| from apscheduler.schedulers.asyncio import AsyncIOScheduler |
|
|
| schedule = AsyncIOScheduler() |
| schedule.add_job(autopic_func, "interval", seconds=sleep) |
| schedule.start() |
| except ModuleNotFoundError as er: |
| LOGS.error(f"autopic: '{er.name}' not installed.") |
|
|