예제 #1
0
    message = 'Такого игрока не существует'

    user_id = int(data['text'].split()[1])

    player = Player.query.filter_by(user_id=user_id).first()

    if player:
        jobName = playerAlarmName + str(player.user_id)
        run_date = player.date.replace(hour=15, minute=0, second=0, microsecond=0) + timedelta(weeks=3)

        message = 'Для ' + player.name + ' добавлена напоминалка на ' +\
                  run_date.strftime('%d/%m/%Y, %H:%M:%S') + ' UTC+0'

        scheduler.add_job(
            send_blame_message,
            'date',
            run_date=run_date,
            args=[data['group_id'], player.user_id, 2000000003],
            id=jobName,
            jobstore='default'
        )

    return message, ''


botAddBlameJob_command = VKC.Command()
botAddBlameJob_command.keys = ['Bot.addBlameJob ']
botAddBlameJob_command.desription = 'Добавляет для игрока напоминалку о пропуске дедлайна. ' \
                                    'Принимает id игрока через пробел'
botAddBlameJob_command.proccess = botAddBlameJob
예제 #2
0
import app.vk_commands as VKC
from app.vkapi import send_blame_message


def botTestBlameMessage(data):

    message = '...'

    send_blame_message(data['group_id'], data['from_id'], data['peer_id'])

    return message, ''


botTestBlameMessage_command = VKC.Command()
botTestBlameMessage_command.keys = ['Bot.testBlameMessage']
botTestBlameMessage_command.desription = 'Тестируем отправку сообщений'
botTestBlameMessage_command.proccess = botTestBlameMessage
예제 #3
0
import app.vk_commands as VKC
from app.vk_commands import command_list


def botHelper(data):
    message = 'Вот какие есть команды:\n'

    for c in command_list:
        if c.keys[0].startswith('bot.'):
            message += c.keys[0].split()[0] + ' - ' + c.desription + '\n\n'

    return message, ''


botHelper_command = VKC.Command()
botHelper_command.keys = ['Bot.helper']
botHelper_command.desription = 'Информация о всех системных командах'
botHelper_command.proccess = botHelper
예제 #4
0
def updateDate(data):

    user_id = data['from_id']

    player = Player.query.filter_by(user_id=user_id).first()

    if not player:
        message = 'Прости, но тебя нет в списке, напиши команду "Адик, добавь меня, я твой_никнейм" здесь или же через' \
                  ' личные сообщения, чтобы я мог зарегистрировать тебя. Для доступа к личным сообщениям, надо ' \
                  'вступить в мою группу https://vk.com/ApostolusDeiBot и написать мне лично :3.'
        return message, ''

    # игрок есть, значит обновляем
    date = datetime.datetime.today() + datetime.timedelta(hours=3)

    player.date = date
    db.session.commit()

    check_blame_alarm(player, data)

    message = 'Понято-принято от ' + player.name + '\n\n' + get_list()

    return message, ''


updateDate_command = VKC.Command()
updateDate_command.keys = ['+ ад', '+ад', '+ в ад', '+ ролка', '+ в ролку']
updateDate_command.desription = 'Обновляет дату последнего поста игрока'
updateDate_command.proccess = updateDate
예제 #5
0
import app.vk_commands as VKC
from app.extensions import db
from app.models import BlameMeme


def botAddPhotos(data):

    message = 'Добавлено'

    # вытаскиваем информацию из сообщения и добавляем
    str = data['text'].split('\n')
    length = len(str)

    for x in range(1, length):
        p = str[x].split(' ')

        photo_id = int(p[0])

        photo = BlameMeme(photo_id=photo_id)
        db.session.add(photo)
        db.session.commit()

    return message, ''


botAddPhotos_command = VKC.Command()
botAddPhotos_command.keys = ['Bot.addPhotos\n']
botAddPhotos_command.desription = 'Добавляет картинки для send_blame_message. Каждая картинка пишется с новой строки ' \
                                   'в следующем формате: photo_id'
botAddPhotos_command.proccess = botAddPhotos
예제 #6
0
import app.vk_commands as VKC


def link(data):
    message = 'Вот ссылочка: http://makebelieve.starbb.ru/viewforum.php?id=28'
    return message, ''


link_command = VKC.Command()
link_command.keys = ['Адик, дай ссылку']
link_command.desription = 'Дает ссылку на форум'
link_command.proccess = link
예제 #7
0
from app.models import Player


def botAddPlayers(data):

    message = 'Добавлено'

    # вытаскиваем информацию из сообщения и добавляем
    str = data['text'].split('\n')
    length = len(str)

    for x in range(1, length):
        p = str[x].split(' ')

        user_id = int(p[0])
        name = p[1]
        date = datetime.datetime.strptime(p[2], '%Y-%m-%d/%H:%M:%S')

        player = Player(user_id=user_id, name=name, date=date)
        db.session.add(player)
        db.session.commit()

    return message, ''


botAddPlayers_command = VKC.Command()
botAddPlayers_command.keys = ['Bot.addPlayers\n']
botAddPlayers_command.desription = 'Добавляет игроков в таблицу. Каждый игрок пишется с новой строки в следующем ' \
                                   'формате: user_id имя 1997-10-21/11:00:00'
botAddPlayers_command.proccess = botAddPlayers
예제 #8
0
import app.vk_commands as VKC
from app.extensions import scheduler, weeklyJobName
from apscheduler.jobstores.base import JobLookupError
import sys


def stopWeekNotification(data):

    message = 'Останавливаю недельные оповещения для этой беседы.'

    try:
        job_id = weeklyJobName + str(data['peer_id'])
        scheduler.remove_job(job_id=job_id, jobstore='default')
        scheduler.print_jobs(jobstore='default')
    except JobLookupError:
        print(sys.exc_info())

    return message, ''


stopWeekNotification_command = VKC.Command()
stopWeekNotification_command.keys = ['Адик, останови 7 дней']
stopWeekNotification_command.desription = 'Останавливает недельные оповещения'
stopWeekNotification_command.proccess = stopWeekNotification
예제 #9
0
import app.vk_commands as VKC


def hello(data):
    message = 'Привет!'
    return message, ''


hello_command = VKC.Command()
hello_command.keys = ['Привет бот', 'Привет, Бот', 'Привет Адик', 'Адик, привет', 'Адик привет']
hello_command.desription = 'Приветственное сообщение'
hello_command.proccess = hello
예제 #10
0

def botDeletePlayer(data):

    name = data['text'][17:]

    player = Player.query.filter_by(name=name).first()

    if not player:
        message = 'Такого игрока нет в списке. Возможно он уже был удален'
        return message, ''

    # игрок есть, значит удаляем
    db.session.delete(player)
    db.session.commit()

    message = 'Игрок ' + player.name + ' был удален из списка игроков.\n\n'

    players = Player.query.all()

    for player in players:
        message += player.name + " - " + player.date.strftime("%d/%m/%Y") + "\n"

    return message, ''


botDeletePlayer_command = VKC.Command()
botDeletePlayer_command.keys = ['Bot.deletePlayer ']
botDeletePlayer_command.desription = 'Удаляет игрока по нику. Ник пишется через пробел после команды'
botDeletePlayer_command.proccess = botDeletePlayer
예제 #11
0
import app.vk_commands as VKC
import random

kaomodzi = ["(๑•́ωก̀๑).。oO", "( •́ωก̀)zzZ", "(´っω=`)", "(っ﹏-) .。o", "(。‐ω⊂。)"]


def wakeUp(data):
    message = random.choice(kaomodzi)
    return message, ''


wakeUp_command = VKC.Command()
wakeUp_command.keys = [
    'Адик, подъем!', 'Адик, проснись!', 'Адик, подъем', 'Адик, проснись'
]
wakeUp_command.desription = 'Будит Адика'
wakeUp_command.proccess = wakeUp
예제 #12
0
    message = 'Запускаю недельные оповещения. Дата оповещения: ' + day + ' в ' + text[
        -1] + '.'

    if hour < 0:
        hour = 24 + hour

        dayList = list(daysDict.keys())
        day = dayList[dayList.index(day) - 1]

    minute = int(text[-1].split(':')[1])

    job_id = weeklyJobName + str(peer_id)

    scheduler.add_job(send_list,
                      'cron',
                      day_of_week=daysDict.get(day),
                      hour=hour,
                      minute=minute,
                      args=[peer_id],
                      id=job_id,
                      jobstore='default')
    scheduler.print_jobs(jobstore='default')

    return message, ''


startWeekNotification_command = VKC.Command()
startWeekNotification_command.keys = ['Адик, запусти 7 дней ']
startWeekNotification_command.desription = 'Выводит список игроков каждые семь дней'
startWeekNotification_command.proccess = startWeekNotification
예제 #13
0
import app.vk_commands as VKC
from app.vkapi import get_list


def list(data):

    message = get_list()
    return message, ''


list_command = VKC.Command()
list_command.keys = ['Адик, покажи список', 'Адик, список']
list_command.desription = 'Выводит список игроков с датами'
list_command.proccess = list
예제 #14
0
    if not player:

        # получаем имя, так как оно последнее и без пробелов
        name = data['text'].split()[-1]

        if check_name(name):
            message = 'Такое имя уже есть в списке.\n\n'
            return message, ''

        date = datetime.datetime.today() + datetime.timedelta(hours=3)

        player = Player(user_id=user_id, name=name, date=date)
        db.session.add(player)
        db.session.commit()

        message = 'Я добавил тебя в таблицу.\n\n'

    players = Player.query.all()

    for player in players:
        message += player.name + " - " + player.date.strftime(
            "%d/%m/%Y") + "\n"

    return message, ''


addPlayer_command = VKC.Command()
addPlayer_command.keys = ['Адик, добавь меня, я ']
addPlayer_command.desription = 'Добавляет игрока в таблицу'
addPlayer_command.proccess = addPlayer
예제 #15
0
import app.vk_commands as VKC
from app.extensions import scheduler


def botAllJobs(data):

    scheduler.print_jobs(jobstore='default')
    message = str(scheduler.get_jobs(jobstore='default')) + '\n\nБольше информации смотри в логах:' \
                                                           ' https://dashboard.heroku.com/apps/ad-vk-bot/logs'

    return message, ''


botAllJobs_command = VKC.Command()
botAllJobs_command.keys = ['Bot.sheduler.all_job']
botAllJobs_command.desription = 'Выводит в логи и в сообщения все оповещения (в логах подробнее)'
botAllJobs_command.proccess = botAllJobs