Beispiel #1
0
async def torrent_download(event):
    var = event.pattern_match.group(1)
    event.message
    if event.reply_to_msg_id:
        await event.get_reply_message()
    if not var:
        if event.is_reply:
            var = (await event.get_reply_message()).message
        else:
            await event.edit("`Herhangi bir makale yazmadınız, Waifu gidiyor.`"
                             )
            return
    if not isdir(TEMP_DOWNLOAD_DIRECTORY):
        os.makedirs(TEMP_DOWNLOAD_DIRECTORY)
    full_path = os.getcwd() + TEMP_DOWNLOAD_DIRECTORY.strip('.')
    torrent_file_path = var
    torrent_file_path = torrent_file_path.replace("`", "")
    logger.info(torrent_file_path)
    try:  # Add Torrent Into Queue
        download = aria2.add_torrent(torrent_file_path,
                                     uris=None,
                                     options={'dir': full_path},
                                     position=None)
    except Exception as e:
        await event.edit("Hata:\n`{}`".format(str(e)))
        return
    gid = download.gid
    await progress_status(gid=gid, event=event, previous=None)
Beispiel #2
0
async def magnet_download(event):
    var = event.pattern_match.group(1)
    event.message
    if event.reply_to_msg_id:
        await event.get_reply_message()
    if not var:
        if event.is_reply:
            var = (await event.get_reply_message()).message
        else:
            await event.edit("`Herhangi bir makale yazmadınız, Waifu gidiyor.`"
                             )
            return
    if not isdir(TEMP_DOWNLOAD_DIRECTORY):
        os.makedirs(TEMP_DOWNLOAD_DIRECTORY)
    os.getcwd() + TEMP_DOWNLOAD_DIRECTORY.strip('.')

    magnet_uri = var
    magnet_uri = magnet_uri.replace("`", "")
    logger.info(magnet_uri)
    try:  # Add Magnet URI Into Queue
        download = aria2.add_magnet(magnet_uri)
    except Exception as e:
        logger.info(str(e))
        await event.edit("Hata :\n{}".format(str(e)))
        return
    gid = download.gid
    await progress_status(gid=gid, event=event, previous=None)
    await asyncio.sleep(EDIT_SLEEP_TIME_OUT)
    new_gid = await check_metadata(gid)
    await progress_status(gid=new_gid, event=event, previous=None)
Beispiel #3
0
async def magnet_download(event):
    var = event.pattern_match.group(1)
    event.message
    if event.reply_to_msg_id:
        await event.get_reply_message()
    if not var:
        if event.is_reply:
            var = (await event.get_reply_message()).message
        else:
            await event.edit("`Herhangi bir makale yazmadınız, Waifu gidiyor.`"
                             )
            return
    if not isdir(TEMP_DOWNLOAD_DIRECTORY):
        os.makedirs(TEMP_DOWNLOAD_DIRECTORY)
    full_path = os.getcwd() + TEMP_DOWNLOAD_DIRECTORY.strip('.')
    print(var)
    uris = [var]
    try:  # Add URL Into Queue
        download = aria2.add_uris(uris,
                                  options={'dir': full_path},
                                  position=None)
    except Exception as e:
        logger.info(str(e))
        await event.edit("Hata :\n`{}`".format(str(e)))
        return
    gid = download.gid
    await progress_status(gid=gid, event=event, previous=None)
    file = aria2.get_download(gid)
    if file.followed_by_ids:
        new_gid = await check_metadata(gid)
        await progress_status(gid=new_gid, event=event, previous=None)
Beispiel #4
0
async def torrent_download(event):
    var = event.pattern_match.group(1)
    event.message
    if event.reply_to_msg_id:
        await event.get_reply_message()
    if not var:
        if event.is_reply:
            var = (await event.get_reply_message()).message
        else:
            await event.edit(
                "`You haven't written any article, Waifu is going away.`")
            return
    if not isdir(TEMP_DOWNLOAD_DIRECTORY):
        os.makedirs(TEMP_DOWNLOAD_DIRECTORY)
    full_path = os.getcwd() + TEMP_DOWNLOAD_DIRECTORY.strip(".")
    torrent_file_path = var
    torrent_file_path = torrent_file_path.replace("`", "")
    logger.info(torrent_file_path)
    try:  # Add Torrent Into Queue
        download = aria2.add_torrent(torrent_file_path,
                                     uris=None,
                                     options={"dir": full_path},
                                     position=None)
    except Exception as e:
        await event.edit("Error :\n`{}`".format(str(e)))
        return
    gid = download.gid
    await progress_status(gid=gid, event=event, previous=None)
Beispiel #5
0
--max-connection-per-server=10 \
--rpc-max-request-size=1024M \
--seed-time=0.01 \
--max-upload-limit=5K \
--max-concurrent-downloads=5 \
--min-split-size=10M \
--follow-torrent=mem \
--split=10 \
--bt-tracker={trackers} \
--daemon=true \
--allow-overwrite=true"

subprocess_run(cmd)
if not os.path.isdir(TEMP_DOWNLOAD_DIRECTORY):
    os.makedirs(TEMP_DOWNLOAD_DIRECTORY)
download_path = os.getcwd() + TEMP_DOWNLOAD_DIRECTORY.strip('.')

aria2 = aria2p.API(aria2p.Client(host="http://localhost", port=6800,
                                 secret=""))

aria2.set_global_options({'dir': download_path})


@register(outgoing=True, pattern="^\.amag(?: |$)(.*)")
async def magnet_download(event):
    magnet_uri = event.pattern_match.group(1)
    # Add Magnet URI Into Queue
    try:
        download = aria2.add_magnet(magnet_uri)
    except Exception as e:
        LOGS.info(str(e))
Beispiel #6
0
import asyncio
import os
from random import choice, randint

import requests
from bs4 import BeautifulSoup as soup
from PIL import Image

from userbot import CMD_HELP, TEMP_DOWNLOAD_DIRECTORY
from userbot.events import register

down_p = str(TEMP_DOWNLOAD_DIRECTORY.rstrip("/"))


@register(outgoing=True, pattern=r"^\.wall ?(.*)")
async def wallp(event):
    if not os.path.isdir(down_p):
        os.makedirs(down_p)
    cat_id = event.chat_id
    input_str = event.pattern_match.group(1)
    if input_str:
        qu = input_str
        await event.edit(f"**Searching for **`{qu}`")
        try:
            link = await walld(str(qu))
        except Exception as e:
            await event.edit(e)
            return
        if link:
            idl = await dlimg(link[0])
            if link[0].endswith("png"):
Beispiel #7
0
async def download(gdrive, service, uri=None):
    global is_cancelled
    reply = ""
    """ - Download files to local then upload - """
    if not isdir(TEMP_DOWNLOAD_DIRECTORY):
        os.makedirs(TEMP_DOWNLOAD_DIRECTORY)
        required_file_name = None
    if uri:
        full_path = os.getcwd() + TEMP_DOWNLOAD_DIRECTORY.strip(".")
        if isfile(uri) and uri.endswith(".torrent"):
            downloads = aria2.add_torrent(
                uri, uris=None, options={"dir": full_path}, position=None
            )
        else:
            uri = [uri]
            downloads = aria2.add_uris(uri, options={"dir": full_path}, position=None)
        gid = downloads.gid
        await check_progress_for_dl(gdrive, gid, previous=None)
        file = aria2.get_download(gid)
        filename = file.name
        if file.followed_by_ids:
            new_gid = await check_metadata(gid)
            await check_progress_for_dl(gdrive, new_gid, previous=None)
        try:
            required_file_name = TEMP_DOWNLOAD_DIRECTORY + filenames
        except Exception:
            required_file_name = TEMP_DOWNLOAD_DIRECTORY + filename
    else:
        try:
            current_time = time.time()
            is_cancelled = False
            downloaded_file_name = await gdrive.client.download_media(
                await gdrive.get_reply_message(),
                TEMP_DOWNLOAD_DIRECTORY,
                progress_callback=lambda d, t: asyncio.get_event_loop().create_task(
                    progress(
                        d,
                        t,
                        gdrive,
                        current_time,
                        "[ARQUIVO - DOWNLOAD]",
                        is_cancelled=is_cancelled,
                    )
                ),
            )
        except CancelProcess:
            reply += (
                "`[ARQUIVO - CANCELADO]`\n\n"
                "`Status` : **OK** - sinal recebido: cancelado."
            )
            return reply
        else:
            required_file_name = downloaded_file_name
    try:
        file_name = await get_raw_name(required_file_name)
    except AttributeError:
        reply += "`[ENTRY - ERRO]`\n\n" "`Status` : **FALHA**\n"
        return reply
    mimeType = await get_mimeType(required_file_name)
    try:
        status = "[ARQUIVO - UPLOAD]"
        if isfile(required_file_name):
            try:
                result = await upload(
                    gdrive, service, required_file_name, file_name, mimeType
                )
            except CancelProcess:
                reply += (
                    "`[ARQUIVO - CANCELADO]`\n\n"
                    "`Status` : **OK** - sinal recebido: cancelado."
                )
                return reply
            else:
                reply += (
                    f"`{status}`\n\n"
                    f"`Nome   :` `{file_name}`\n"
                    f"`Tamanho   :` `{humanbytes(result[0])}`\n"
                    f"`Link   :` [{file_name}]({result[1]})\n"
                    "`Status :` **OK** - Upload concluído.\n\n"
                )
                return reply
        else:
            status = status.replace("[ARQUIVO", "[PASTA")
            global parent_Id
            folder = await create_dir(service, file_name)
            parent_Id = folder.get("id")
            webViewURL = "https://drive.google.com/drive/folders/" + parent_Id
            try:
                await task_directory(gdrive, service, required_file_name)
            except CancelProcess:
                reply += (
                    "`[PASTA - CANCELADO]`\n\n"
                    "`Status` : **OK** - sinal recebido: cancelado."
                )
                await reset_parentId()
                return reply
            except Exception:
                await reset_parentId()
            else:
                reply += (
                    f"`{status}`\n\n"
                    f"[{file_name}]({webViewURL})\n"
                    "`Status` : **OK** - Upload concluído.\n\n"
                )
                await reset_parentId()
                return reply
    except Exception as e:
        status = status.replace("DOWNLOAD]", "ERRO]")
        reply += f"`{status}`\n\n" "`Status` : **FALHA**\n" f"`Motivo` : `{str(e)}`\n\n"
        return reply
    return
async def download(gdrive, service, uri=None):
    global is_cancelled
    reply = ''
    """ - Download files to local then upload - """
    if not isdir(TEMP_DOWNLOAD_DIRECTORY):
        os.makedirs(TEMP_DOWNLOAD_DIRECTORY)
        required_file_name = None
    if uri:
        full_path = os.getcwd() + TEMP_DOWNLOAD_DIRECTORY.strip('.')
        if isfile(uri) and uri.endswith(".torrent"):
            downloads = aria2.add_torrent(uri,
                                          uris=None,
                                          options={'dir': full_path},
                                          position=None)
        else:
            uri = [uri]
            downloads = aria2.add_uris(uri,
                                       options={'dir': full_path},
                                       position=None)
        gid = downloads.gid
        await check_progress_for_dl(gdrive, gid, previous=None)
        file = aria2.get_download(gid)
        filename = file.name
        if file.followed_by_ids:
            new_gid = await check_metadata(gid)
            await check_progress_for_dl(gdrive, new_gid, previous=None)
        try:
            required_file_name = TEMP_DOWNLOAD_DIRECTORY + filenames
        except Exception:
            required_file_name = TEMP_DOWNLOAD_DIRECTORY + filename
    else:
        try:
            current_time = time.time()
            is_cancelled = False
            downloaded_file_name = await gdrive.client.download_media(
                await gdrive.get_reply_message(),
                TEMP_DOWNLOAD_DIRECTORY,
                progress_callback=lambda d, t: asyncio.get_event_loop(
                ).create_task(
                    progress(d,
                             t,
                             gdrive,
                             current_time,
                             "[FILE - DOWNLOAD]",
                             is_cancelled=is_cancelled)))
        except CancelProcess:
            names = []
            for name in os.listdir(TEMP_DOWNLOAD_DIRECTORY):
                names.append(join(TEMP_DOWNLOAD_DIRECTORY, name))
            """ asumming newest files are the cancelled one """
            newest = max(names, key=getctime)
            os.remove(newest)
            reply += ("`[FILE - CANCELLED]`\n\n"
                      "`Status` : **OK** - received signal cancelled.")
            return reply
        else:
            required_file_name = downloaded_file_name
    try:
        file_name = await get_raw_name(required_file_name)
    except AttributeError:
        reply += ("`[ENTRY - ERROR]`\n\n" "`Status` : **BAD**\n")
        return reply
    mimeType = await get_mimeType(required_file_name)
    try:
        status = "[FILE - UPLOAD]"
        if isfile(required_file_name):
            try:
                result = await upload(gdrive, service, required_file_name,
                                      file_name, mimeType)
            except CancelProcess:
                reply += ("`[FILE - CANCELLED]`\n\n"
                          "`Status` : **OK** - received signal cancelled.")
                return reply
            else:
                reply += (f"`{status}`\n\n"
                          f"`Name   :` `{file_name}`\n"
                          f"`Size   :` `{humanbytes(result[0])}`\n"
                          f"`Link   :` [{file_name}]({result[1]})\n"
                          "`Status :` **OK** - Successfully uploaded.\n\n")
                return reply
        else:
            status = status.replace("[FILE", "[FOLDER")
            global parent_Id
            folder = await create_dir(service, file_name)
            parent_Id = folder.get('id')
            webViewURL = ("https://drive.google.com/drive/folders/" +
                          parent_Id)
            try:
                await task_directory(gdrive, service, required_file_name)
            except CancelProcess:
                reply += ("`[FOLDER - CANCELLED]`\n\n"
                          "`Status` : **OK** - received signal cancelled.")
                await reset_parentId()
                return reply
            except Exception:
                await reset_parentId()
            else:
                reply += (f"`{status}`\n\n"
                          f"[{file_name}]({webViewURL})\n"
                          "`Status` : **OK** - Successfully uploaded.\n\n")
                await reset_parentId()
                return reply
    except Exception as e:
        status = status.replace("DOWNLOAD]", "ERROR]")
        reply += (f"`{status}`\n\n"
                  "`Status` : **failed**\n"
                  f"`Reason` : `{str(e)}`\n\n")
        return reply
    return
import os
from shutil import rmtree
from time import time

from deezloader import Login
from hachoir.metadata import extractMetadata
from hachoir.parser import createParser
from requests import get
from telethon.tl.types import DocumentAttributeAudio

from userbot import CMD_HANDLER as cmd
from userbot import CMD_HELP, DEEZER_ARL_TOKEN, TEMP_DOWNLOAD_DIRECTORY, bot
from userbot.events import man_cmd

if not TEMP_DOWNLOAD_DIRECTORY.endswith("/"):
    TEMP_DOWNLOAD_DIRECTORY += "/"


@bot.on(man_cmd(outgoing=True, pattern=r"deezloader (.*) (flac|320|256|128)"))
async def deeznuts(event):
    if DEEZER_ARL_TOKEN is None:
        return await event.edit("**Set** `DEEZER_ARL_TOKEN` **first.**")

    try:
        loader = Login(DEEZER_ARL_TOKEN)
    except Exception as e:
        return await event.edit(f"**Error:** `{e}`")

    try:
        link = get(event.pattern_match.group(1)).url
Beispiel #10
0
async def download(gdrive, service, uri=None):
    reply = ''
    """ - Download files to local then upload - """
    if not isdir(TEMP_DOWNLOAD_DIRECTORY):
        os.makedirs(TEMP_DOWNLOAD_DIRECTORY)
        required_file_name = None
    if uri:
        full_path = os.getcwd() + TEMP_DOWNLOAD_DIRECTORY.strip('.')
        if isfile(uri) and uri.endswith(".torrent"):
            downloads = aria2.add_torrent(uri,
                                          dict(dir=full_path),
                                          uris=None,
                                          position=None)
        else:
            uri = [uri]
            downloads = aria2.add_uris(uri, dict(dir=full_path), position=None)
        gid = downloads.gid
        await check_progress_for_dl(gdrive, gid, previous=None)
        file = aria2.get_download(gid)
        filename = file.name
        if file.followed_by_ids:
            new_gid = await check_metadata(gid)
            await check_progress_for_dl(gdrive, new_gid, previous=None)
        try:
            required_file_name = TEMP_DOWNLOAD_DIRECTORY + filenames
        except Exception:
            required_file_name = TEMP_DOWNLOAD_DIRECTORY + filename
    else:
        try:
            current_time = time.time()
            downloaded_file_name = await gdrive.client.download_media(
                await gdrive.get_reply_message(),
                TEMP_DOWNLOAD_DIRECTORY,
                progress_callback=lambda d, t: asyncio.get_event_loop(
                ).create_task(
                    progress(d, t, gdrive, current_time, "`[FILE - DOWNLOAD]`")
                ))
        except Exception as e:
            await gdrive.edit(str(e))
        else:
            required_file_name = downloaded_file_name
    try:
        file_name = await get_raw_name(required_file_name)
    except AttributeError:
        reply += ("`[ENTRY - ERROR]`\n\n" "`Status :` **BAD**\n")
        return reply
    mimeType = await get_mimeType(required_file_name)
    try:
        status = "[FILE - UPLOAD]"
        if isfile(required_file_name):
            result = await upload(gdrive, service, required_file_name,
                                  file_name, mimeType)
            reply += (f"`{status}`\n\n"
                      f"`Name     :` `{file_name}`\n"
                      f"`Size     :` `{humanbytes(result[0])}`\n"
                      f"`Download :` [{file_name}]({result[1]})\n"
                      "`Status   :` **OK** - Successfully uploaded.\n\n")
            return reply
        else:
            status = status.replace("[FILE", "[FOLDER")
            global parent_Id
            folder = await create_dir(service, file_name)
            parent_Id = folder.get('id')
            try:
                await task_directory(gdrive, service, required_file_name)
            except Exception:
                await reset_parentId()
            else:
                webViewURL = ("https://drive.google.com/drive/folders/" +
                              parent_Id)
                reply += (f"`{status}`\n\n"
                          f"`Name   :` `{file_name}`\n"
                          "`Status :` **OK** - Successfully uploaded.\n"
                          f"`URL    :` [{file_name}]({webViewURL})\n\n")
                await reset_parentId()
                return reply
    except Exception as e:
        status = status.replace("DOWNLOAD]", "ERROR]")
        reply += (f"`{status}`\n\n"
                  "`Status :` **failed**\n"
                  f"`Reason :` `{str(e)}`\n\n")
        return reply
    return
Beispiel #11
0
async def download(gdrive, service, uri=None):
    global is_cancelled
    reply = ""
    """ - Download files to local then upload - """
    if not isdir(TEMP_DOWNLOAD_DIRECTORY):
        os.makedirs(TEMP_DOWNLOAD_DIRECTORY)
        required_file_name = None
    if uri:
        full_path = os.getcwd() + TEMP_DOWNLOAD_DIRECTORY.strip(".")
        if isfile(uri) and uri.endswith(".torrent"):
            downloads = aria2.add_torrent(uri,
                                          uris=None,
                                          options={"dir": full_path},
                                          position=None)
        else:
            uri = [uri]
            downloads = aria2.add_uris(uri,
                                       options={"dir": full_path},
                                       position=None)
        gid = downloads.gid
        await check_progress_for_dl(gdrive, gid, previous=None)
        file = aria2.get_download(gid)
        filename = file.name
        if file.followed_by_ids:
            new_gid = await check_metadata(gid)
            await check_progress_for_dl(gdrive, new_gid, previous=None)
        try:
            required_file_name = TEMP_DOWNLOAD_DIRECTORY + filenames
        except Exception:
            required_file_name = TEMP_DOWNLOAD_DIRECTORY + filename
    else:
        try:
            current_time = time.time()
            is_cancelled = False
            downloaded_file_name = await gdrive.client.download_media(
                await gdrive.get_reply_message(),
                TEMP_DOWNLOAD_DIRECTORY,
                progress_callback=lambda d, t: asyncio.get_event_loop().
                create_task(
                    progress(
                        d,
                        t,
                        gdrive,
                        current_time,
                        "[FILE - DOWNLOAD]",
                        is_cancelled=is_cancelled,
                    )),
            )
        except CancelProcess:
            reply += ("`[FILE - DIBATALKAN]`\n\n"
                      "`Status` : **OK** - sinyal yang diterima dibatalkan.")
            return reply
        else:
            required_file_name = downloaded_file_name
    try:
        file_name = await get_raw_name(required_file_name)
    except AttributeError:
        reply += "`[MASUK- ERROR]`\n\n" "`Status` : **BAD**\n"
        return reply
    mimeType = await get_mimeType(required_file_name)
    try:
        status = "[FILE - UPLOAD]"
        if isfile(required_file_name):
            try:
                result = await upload(gdrive, service, required_file_name,
                                      file_name, mimeType)
            except CancelProcess:
                reply += (
                    "`[FILE - DIBATALKAN]`\n\n"
                    "`Status` : **OK** - sinyal yang diterima dibatalkan.")
                return reply
            else:
                reply += (f"`{status}`\n\n"
                          f"`Nama   :` `{file_name}`\n"
                          f"`Ukuran :` `{humanbytes(result[0])}`\n"
                          f"`Link   :` [{file_name}]({result[1]})\n"
                          "`Status :` **OK** - Berhasil diunggah.\n\n")
                return reply
        else:
            status = status.replace("[FILE", "[FOLDER")
            global parent_Id
            folder = await create_dir(service, file_name)
            parent_Id = folder.get("id")
            webViewURL = "https://drive.google.com/drive/folders/" + parent_Id
            try:
                await task_directory(gdrive, service, required_file_name)
            except CancelProcess:
                reply += (
                    "`[FOLDER - DIBATALKAN]`\n\n"
                    "`Status` : **OK** - sinyal yang diterima dibatalkan.")
                await reset_parentId()
                return reply
            except Exception:
                await reset_parentId()
            else:
                reply += (f"`{status}`\n\n"
                          f"[{nama-file}]({webViewURL})\n"
                          "`Status` : **OK** - Berhasil Diunggah.\n\n")
                await reset_parentId()
                return reply
    except Exception as e:
        status = status.replace("DOWNLOAD]", "ERROR]")
        reply += (f"`{status}`\n\n"
                  "`Status` : **GAGAL**\n"
                  f"`Alasan` : `{str(e)}`\n\n")
        return reply
    return