예제 #1
0
def screen(m):
    bot.delete_message(m.chat.id, m.message_id)
    HEADERS = {
        "User-Agent":
        "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.87 Safari/537.36"
    }
    keyboard = types.InlineKeyboardMarkup()
    keyboard_delete = types.InlineKeyboardButton(text="❌",
                                                 callback_data="delete")
    keyboard.add(keyboard_delete)

    try:
        res = requests.get(m.text[5:],
                           headers=HEADERS)  # Защита от спермотоксикозников
        bool_ = ("Порн" in res.text or "P**n" in res.text or "p**n" in res.text
                 or "порн" in res.text)
        if bool_ == 1:
            bot.send_sticker(
                m.chat.id,
                "CAACAgQAAxkBAAIaSF93cwIsw1oPRGtOdZHTF8_UsBTDAAJYAAO6erwZr3-jVb-xFsgbBA"
            )
            time.sleep(15.5)
            bot.delete_message(m.chat.id, m.message_id + 1)
        else:
            bot.send_photo(
                m.chat.id,
                photo="https://mini.s-shot.ru/1366x768/JPEG/1366/Z100/?" +
                m.text[5:],
                reply_markup=keyboard)
    except Exception as e:
        print("❌ ОШИБКА ❌")
        print("screenshot.py  " + e)
        Error(m, bot).error()
예제 #2
0
def showMainMenu(message):
    """
    Функция показа главного меню.
    Отображает стикер и приветственное сообщение.
    Устанавливает в базу необходимые значения.

    Parameters
    ----------
    message
        Объект message
    """
    # working with json
    currentChatId = message.chat.id
    databaseHelper.save(currentChatId, 'prevMenuId', 0)
    databaseHelper.save(currentChatId, 'status', 0)

    remindsStatus = databaseHelper.get(currentChatId, 'reminds')

    # keyboard
    markup = types.ReplyKeyboardMarkup(row_width=1, resize_keyboard=True)
    tasksListButton = types.KeyboardButton(config.tasksListLabel)
    timeTableButton = types.KeyboardButton(config.timeTableLabel)
    eventsButton = types.KeyboardButton(config.eventsLabel)
    game = types.KeyboardButton("Крестики-нолики")

    turnRemindsBtn = types.KeyboardButton(
        f"{config.remindsLabel} {remindsStatus}")
    markup.add(tasksListButton, timeTableButton, eventsButton, turnRemindsBtn,
               game)
    # sending
    sticker = open(random.choice(config.stickers), 'rb')
    bot.send_sticker(message.chat.id, sticker)
    bot.send_message(message.chat.id,
                     config.mainMenuMessage,
                     reply_markup=markup)
예제 #3
0
def mute(m):
    bot.delete_message(m.chat.id, m.message_id)

    check_admin = Error(m, bot).check_reply_admin_()

    if m.reply_to_message.from_user.id == 905933085:
        bot.send_message(m.chat.id,
                         text="*Не трошь её!*",
                         parse_mode="Markdown")
        time.sleep(2)
        bot.delete_message(m.chat.id, m.message_id + 1)
        bot.send_sticker(
            m.chat.id,
            "CAACAgIAAxkBAAIalF94SmIocEzaL6j2Yaz4IAM_ueoMAAIBAQACnxUvEo9CUplzfDv9GwQ"
        )
        time.sleep(5)
        bot.delete_message(m.chat.id, m.message_id + 2)
##########################################################################
    else:  # Если человек не
        if check_admin == False:
            Error(m, bot).message_admin()
        if check_admin == True:
            bot.restrict_chat_member(m.chat.id,
                                     m.reply_to_message.from_user.id,
                                     can_send_messages=False)
            bot.send_message(m.chat.id,
                             text="*" +
                             m.reply_to_message.from_user.first_name +
                             "* _замолк на 10 минут!_",
                             parse_mode="Markdown")
예제 #4
0
def handler_new_member(m):
    bot.delete_message(m.chat.id,
                       m.message_id)  #Удалить сообщение, содержащее команду
    id = m.json
    id = id['new_chat_members']
    for a in id:
        id = a['id']
        name = a['first_name']
    last = f'<a href="tg://user?id={id}">{name}</a>'
    bot.send_sticker(
        m.chat.id,
        'CAACAgIAAxkBAAJFW16Tj7HCIcjx9fPTf3WYtEXLG4EJAAIDAAOF-3IqNguusCQT_gEYBA'
    )  #Отправить стикер
    bot.send_message(m.chat.id,
                     "Добро пожаловать, " + last +
                     "\nНапиши /help, чтобы мной воспользоваться",
                     parse_mode="HTML")
    bot.export_chat_invite_link(chat_id)

    #######################################################
    writes(m)
    cursor = conn.cursor()
    date = (datetime.datetime.now()).strftime("%Y %m %d")
    id_ = m.from_user.id
    cursor.execute(
        f"UPDATE top_users SET date_add = '{date}' WHERE user_id = {m.from_user.id};"
    )
    conn.commit()
예제 #5
0
def left_chat_member(m):
    try:
        bot.delete_message(
            m.chat.id,
            m.message_id)  #Удалить сообщение о том что пользователь вышел
        bot.export_chat_invite_link(chat_id)
        first = f'<a href="tg://user?id={m.from_user.id}">{m.from_user.first_name}</a>'
        last = f'<a href="tg://user?id={m.left_chat_member.id}">{m.left_chat_member.first_name}</a>'
        if m.from_user.id != m.left_chat_member.id:
            bot.send_sticker(
                m.chat.id,
                'CAACAgIAAxkBAAJMe1-lM12m7DQqSelOfsAs3qzBZbY7AAKPEQACPLPFBzLcyrxNSGysHgQ'
            )  #Отправить стикер
            result = first + " кикнул(a) " + last
            bot.send_message(m.chat.id, result, parse_mode=('HTML'))
        else:
            bot.send_sticker(
                m.chat.id,
                'CAACAgIAAxkBAAJMe1-lM12m7DQqSelOfsAs3qzBZbY7AAKPEQACPLPFBzLcyrxNSGysHgQ'
            )  #Отправить стикер
            bot.send_message(
                m.chat.id, last + ' покинул(a) нас',
                parse_mode=("HTML"))  #Уведомляем, что пользователь вышел
        cursor = conn.cursor()
        userid = m.left_chat_member.id
        cursor.execute("DELETE FROM top_users WHERE user_id = " + str(userid) +
                       ";")
        conn.commit()
    except:
        bot.send_message(user_id, "Я - псих. И устал от вас, прощайте.")
예제 #6
0
def guess_city(message):
    '''Return city name by a number
    
    If city not found - return NotFoundError
    If Timeout is reached - return APICallTimeoutError'''
    try:
        obs = owm.weather_at_place(message.text)
        l = obs.get_location()
        city_name = l.get_name()
        guess_answer = 'Ты попал прямиком в {}'.format(city_name)
    except exceptions.api_response_error.NotFoundError:
        guess_answer = config.answer_NotFound
    except exceptions.api_call_error.APICallTimeoutError:
        bot.send_sticker(message.chat.id, config.timeout_sticker)
        sleep(5)
        guess_answer = config.answer_APICallTimeout
    bot.send_message(message.chat.id, guess_answer)
예제 #7
0
    def start_round_thread(user_id):
        """messages every user of the round starting in xminutes"""
        print("started drop session ....")
        user = db.Users.get(user_id)
        lang = user.lang
        btn_text = {
            "en": f"Join round @{user.username}",
            "de": f"Runde mit @{user.username} beitreten"
        }
        usern_mrkp = telebot.types.InlineKeyboardMarkup()
        usern_btn = telebot.types.InlineKeyboardButton(
            text=btn_text[lang], callback_data="join_round")
        usern_mrkp.add(usern_btn)
        text = {
            "en":
            f"""
The Engagement round starts in <b> {drop_duration} seconds </b> ⏳. If
you want to participate, just press the button 💁🏽🏽♀
            """,
            "de":
            f"""
Die nächste Engagement-Runde startet in <b>{drop_duration} seconds</b> ⏳. Wenn
du daran teilnehmen möchtest, drücke einfach auf den Button 💁🏽🏽♀
            """
        }

        # bot.send_photo(
        #     user_id,
        #     "https://res.cloudinary.com/konichar/image/upload/v1591791368/bxyknpdz2wuw8ewqevpg.png",
        #     caption=intro,
        #     parse_mode="html"
        #     )

        bot.send_sticker(
            user_id,
            data=
            "CAACAgQAAxkBAAITQV7iAsys8gEyMHMnjK-TV-2FDBzPAAIBAAOtV8w-NXDaJwofElEaBA"
            # reply_markup=usern_mrkp
        )

        start_round_message = bot.send_message(user_id,
                                               text=text[lang],
                                               reply_markup=usern_mrkp,
                                               parse_mode="html")
        loop_teaze(user_id, start_round_message)
예제 #8
0
def showHelp(message):
    """
    Функция вывода сообщения для команды /help

    Parameters
    ----------
    message
        Объект message
    """
    botMessage = f"<b>{message.from_user.first_name}</b>, {config.helpMessage}"
    bot.send_message(message.chat.id,
                     botMessage,
                     reply_markup=None,
                     parse_mode='html')
    helpSticker = open('static/img/nobodycares.tgs', 'rb')
    bot.send_sticker(message.chat.id, helpSticker)
    # working with json
    currentChatId = message.chat.id
    databaseHelper.save(currentChatId, 'prevMenuId', 0)
    databaseHelper.save(currentChatId, 'status', 0)
예제 #9
0
def start(message):
    """
  Sends a greeting message from config file
  and provides some basic bot configuration settings
  """

    chatID = message.chat.id

    language = Language(chatID).lang
    languageMarkup = getLanguageMarkup(language)

    bot.send_sticker(chatID, greetingStickerId)

    greetingString = message.replies.hi.format(message.from_user.first_name,
                                               bot.get_me().username,
                                               commands.h)

    bot.send_message(chatID,
                     greetingString,
                     reply_markup=languageMarkup,
                     parse_mode='html')
예제 #10
0
def say(m):
    bot.delete_message(m.chat.id, m.message_id)
    try:
        if m.chat.type != "private":
            markup = types.InlineKeyboardMarkup(
            )  #Отвечаем, если выхов был из супер чата
            link_bot = types.InlineKeyboardButton(
                text='Перейти в лс', url='t.me/cat_glav_bot'
            )  #Отвечаем, если выхов был из супер чата
            markup.add(link_bot)  #Отвечаем, если выхов был из супер чата
            sent = bot.send_message(
                m.chat.id,
                "Команда /say работает только в лс бота",
                reply_markup=markup)  #Отвечаем, если выхов был из супер чата
            sleep(10)
            bot.delete_message(m.chat.id, sent.message_id)

        if m.reply_to_message:
            sticker_id = bot.get_file(m.reply_to_message.sticker.file_id)
            bot.send_sticker(chat_id, sticker_id.file_id)
            sent = bot.send_message(
                m.chat.id, "Стикер успешно отправлен!"
            )  #Отвечаем, если команда пришла не из супер чата
            sleep(10)
            bot.delete_message(m.chat.id, sent.message_id)
        else:
            bot.send_message(
                chat_id,
                f"_{random.choice(shout)}:_ *'{m.text[5:]}'* 😱 ",
                parse_mode="Markdown"
            )  #Обработать команду и отправить то, что находится с 5 символа и до...
            sent = bot.send_message(
                m.chat.id, "Сообщение успешно отправлено!"
            )  #Отвечаем, если команда пришла не из супер чата
            sleep(10)
            bot.delete_message(m.chat.id, sent.message_id)
    except Exception:
        Error(m, bot).error()
예제 #11
0
def get_loc_weather(latitude, longitude, message):
    try:
        obs = owm.weather_at_coords(latitude, longitude)
        weather = obs.get_weather()

        humidity = weather.get_humidity()
        l = obs.get_location()
        city_name = l.get_name()
        temperature = weather.get_temperature("celsius")["temp"]

        answer = "Я нашел тебя 🙈  \n"
        answer += config.answer_text.format(city_name, weather.get_detailed_status(), temperature, humidity)
        if temperature < 0:
            answer += "Тебе там не холодно, котичка?"
        elif temperature < 10:
            answer += "Чашка горячего чая не помешает"
        elif temperature < 15:
            answer += "Чуууточку бы теплее)"
        elif temperature < 20:
            answer += "Муур"
        elif temperature < 25:
            answer += "Погода шепчет, нужно выгулять котичка)))"
        elif 25 <= temperature <= 30:
            answer += "Еще чуть-чуть и станет совсем жарко, раздевайся...))"
        elif temperature > 30:
            answer += random.choice(config.answer_list_hot)
    except exceptions.api_response_error.NotFoundError:
        bot.send_sticker(message.chat.id, config.error_sticker)
        sleep(3)
        answer = random.choice(config.answer_NotFound)
    except exceptions.api_call_error.APICallTimeoutError:
        answer = config.answer_APICallTimeout
    except exceptions.api_call_error.APICallError:
        answer = config.answer_APICallError

    return answer
예제 #12
0
def send_sticker(message):
    bot.send_sticker(message.chat.id, random.choice(config.sticker_list))
예제 #13
0
def send_welcome(message):
    bot.send_sticker(message.chat.id, config.start_sticker)
    sleep(5)
    bot.send_message(message.chat.id, config.welcome_text)
예제 #14
0
 def windows(m):
     bot.send_sticker(
         m.chat.id,
         "CAACAgQAAxkBAALoU17aTycp4L0kAkIssMm9au-ZFzIAAxQAA7p6vBnUv7ww6GyZrhoE"
     )