예제 #1
0
def add_day_ask_month(bot, update):
    messages = DBMessages.query.filter(
        DBMessages.user == update.message.from_user.id).first()
    messages.day = update.message.text.strip()
    if not messages.day.isdigit():
        reply_keyboard = [['1', '2', '3', '4', '5', '6', '7'],
                          ['8', '9', '10', '11', '12', '13'],
                          ['14', '15', '16', '17', '18', '19'],
                          ['20', '21', '22', '23', '24', '25'],
                          ['26', '27', '28', '29', '30', '31']]
        bot.sendMessage(update.message.chat_id,
                        "date must be digit",
                        reply_markup=ReplyKeyboardMarkup(
                            reply_keyboard, one_time_keyboard=True))
        return "Add_AddDayAskMonth"
    if int(messages.day) > 31 or int(messages.day) < 1:
        reply_keyboard = [['1', '2', '3', '4', '5', '6', '7'],
                          ['8', '9', '10', '11', '12', '13'],
                          ['14', '15', '16', '17', '18', '19'],
                          ['20', '21', '22', '23', '24', '25'],
                          ['26', '27', '28', '29', '30', '31']]
        bot.sendMessage(update.message.chat_id,
                        "impossible date",
                        reply_markup=ReplyKeyboardMarkup(
                            reply_keyboard, one_time_keyboard=True))
        return "Add_AddDayAskMonth"
    db_session.commit()
    reply_keyboard = [['January', 'February',
                       'March'], ['April', 'May', 'June'],
                      ['July', 'August', 'September'],
                      ['October', 'November', 'December']]
    update.message.reply_text("Enter the month: \n",
                              reply_markup=ReplyKeyboardMarkup(
                                  reply_keyboard, one_time_keyboard=True))
    return 'Add_AddMonthAddBirthday'
예제 #2
0
def remove(bot, update, args):
    name_to_remove = ""
    if len(args) == 0:
        key_board = [["/add"], ["/month", "/help"]]
        update.message.reply_text(
            text="Try: /remove <name> \nexample: /remove Alexander Pushkin",
            reply_markup=ReplyKeyboardMarkup(key_board,
                                             one_time_keyboard=False))
        return "Menu"
    for i in args:
        name_to_remove = i + " "
    name_to_remove = name_to_remove.strip()
    candidates = DBBirthdays.query.filter(
        DBBirthdays.name == name_to_remove).all()
    if len(candidates) == 0:
        key_board = [["/add"], ["/month", "/help"]]
        update.message.reply_text(text="No such record",
                                  reply_markup=ReplyKeyboardMarkup(
                                      key_board, one_time_keyboard=False))
    else:
        key_board = [["/add"], ["/month", "/help"]]
        update.message.reply_text(text="Successfully removed",
                                  reply_markup=ReplyKeyboardMarkup(
                                      key_board, one_time_keyboard=False))
        db_session.delete(candidates[0])
        db_session.commit()
예제 #3
0
def start(bot, update, chat_data, job_queue):
    if 'is_notifications' not in chat_data:
        chat_data['is_notifications'] = True
        job = job_queue.run_daily(birthdays.alarm,
                                  time(9, 0),
                                  days=(0, 1, 2, 3, 4, 5, 6),
                                  context=[update, chat_data],
                                  name='default')
        chat_data['job'] = job
    if 'time_zone' not in chat_data:
        chat_data['time_zone'] = time(0, 0)
    if 'sign' not in chat_data:
        chat_data['sign'] = True
    if 'user_time' not in chat_data:
        chat_data['user_time'] = time(9, 0)
    messages = DBMessages.query.filter(
        DBMessages.user == update.message.chat_id).all()
    if len(messages) == 0:
        user = DBMessages(update.message.from_user.id)
        print(update.message.from_user.username, update.message.from_user.id)
        db_session.add(user)
        db_session.commit()
    key_board = [["/add"], ["/month", "/help"]]
    bot.sendMessage(
        update.message.chat_id,
        text="Hi! I'm <b>BirthdayBot!</b>\n"
        "Press /help for more information\n\n"
        "If you're new here I highly recommend to start with settings "
        "by using /set command\n\n",
        parse_mode='HTML',
        reply_markup=ReplyKeyboardMarkup(key_board, one_time_keyboard=False))
    return 'Menu'
예제 #4
0
def load_pickled_data():
  with open('cocktails.pkl', 'rb') as f:
    pickled_cocktails = pickle.load(f)

  for c in pickled_cocktails:
    # instantiate and add cocktail
    cocktail = Cocktail(name=c.name, glass=c.glass, recipe=c.recipe, image=c.image)
    db_session.add(cocktail)

    # add each ingredient that is not already in db
    for i in c.ingredients:
        ingredient = Ingredient.query.filter(Ingredient.name==i[0]).one_or_none()
        if ingredient is None:
            image_name = i[0].replace(' ', '+').replace('/', '\\')
            image_path = '{0}/{1}'.format('ingredients', image_name)

            ingredient = Ingredient(i[0], image_path)

        db_session.add(ingredient)

        # add the amount for each ingredient
        amount = Amount(cocktail, ingredient, i[1])
        db_session.add(amount)
    # commit unpickled cocktail goodness
    db_session.commit()
예제 #5
0
 def mutate(root, info, catalog_data=None):
     try:
         catalog = CatalogModel(**catalog_data)
         db_session.add(catalog)
         db_session.commit()
     except BaseException as err:
         db_session.rollback()
         raise GraphQLError("Error inserting Catalog... {}".format(err))
예제 #6
0
 def mutate(root, info, area_data=None):
     try:
         area = AreaModel(**area_data)
         db_session.add(area)
         db_session.commit()
     except BaseException as err:
         db_session.rollback()
         raise GraphQLError("Error inserting Area... {}".format(err))
예제 #7
0
 def mutate(root, info, item_data=None):
     try:
         item = ItemModel(**item_data)
         db_session.add(item)
         db_session.commit()
     except BaseException as err:
         db_session.rollback()
         raise GraphQLError("Error inserting Item... {}".format(err))
예제 #8
0
파일: mutations.py 프로젝트: afr-dt/taskspy
 def mutate(root, info, task_id):
     task = TaskModel.query.filter_by(task_id=task_id).first()
     print(task.task_id)
     if task != None:
         db_session.delete(task)
         db_session.commit()
         return DeleteTask(task=task, status=True)
     else:
         return DeleteTask(task=None, status=False)
예제 #9
0
파일: mutations.py 프로젝트: afr-dt/taskspy
 def mutate(root, info, task_data=None):
     try:
         task = TaskModel(**task_data)
         db_session.add(task)
         db_session.commit()
         return CreateTask(task=task, status=True)
     except BaseException as err:
         db_session.rollback()
         raise GraphQLError("Error inserting Task... {}".format(err))
예제 #10
0
 def mutate(self, info, name, author, price, title=None):
     create_time = update_time = time.time()
     id = new_id()
     book = models.ExchangeAccount(id=id, name=name, title=title,
                                   price=price, author=author, del_flag=1, create_time=create_time,
                                   update_time=update_time)
     db_session.add(book)
     db_session.commit()
     return addBook(book=book)
예제 #11
0
파일: mutations.py 프로젝트: afr-dt/taskspy
 def mutate(root, info, task_data=None):
     try:
         query = Task.get_query(info)
         task = TaskModel(task_id=task_data.task_id)
         query.filter(TaskModel.task_id == task.task_id).update(task_data)
         db_session.commit()
         return EditTask(task=task, status=True)
     except BaseException as err:
         db_session.rollback()
         raise GraphQLError("Error edit Task... {}".format(err))
예제 #12
0
def provide_link_ask_day(bot, update):
    messages = DBMessages.query.filter(
        DBMessages.user == update.message.from_user.id).first()
    text = update.message.text.strip()
    messages.link = text
    db_session.commit()
    reply_keyboard = [['1', '2', '3', '4', '5', '6', '7'],
                      ['8', '9', '10', '11', '12', '13'],
                      ['14', '15', '16', '17', '18', '19'],
                      ['20', '21', '22', '23', '24', '25'],
                      ['26', '27', '28', '29', '30', '31']]
    update.message.reply_text("Enter the day: \n",
                              reply_markup=ReplyKeyboardMarkup(
                                  reply_keyboard, one_time_keyboard=True))
    return 'Add_AddDayAskMonth'
예제 #13
0
파일: views.py 프로젝트: Mordeaux/Setback
def games():
    """API inpoint for Games collection. GET requests return the user's game
       collection. POST creates a new game."""
    if request.method == 'POST':
        game = Game()
        player1 = int(request.form.get('player1'))
        player2 = int(request.form.get('player2'))
        player3 = int(request.form.get('player3'))
        player4 = int(request.form.get('player4'))
        User.get(player1).join_game(game, 0)
        User.get(player2).join_game(game, 1)
        User.get(player3).join_game(game, 2)
        User.get(player4).join_game(game, 3)
        db_session.flush()
        game.deal()
        db_session.commit()
        session['current_game'] = game.id
    return jsonify(current_user.current_games())
예제 #14
0
파일: views.py 프로젝트: Mordeaux/Setback
def login():
    """Logs the user in or creates a new user in the database."""
    form = LoginForm(request.form)
    validates = request.method == 'POST' and form.validate()
    if validates:
        username = request.form.get('username')
        password = request.form.get('password')
        if not User.username_taken(username):
            user = User(username=username, password=hashulate(password))
            db_session.add(user)
            db_session.commit()
            login_user(user)
            return redirect(request.args.get("next") or url_for("home"))
        elif User.check_password(User.id_from_name(username), 
                                 request.form.get('password')):
            login_user(User(id=User.id_from_name(username)))
            return redirect(request.args.get("next") or url_for("home"))
    return render_template('login.html', form=form)
예제 #15
0
def add_name_is_link(bot, update):
    messages = DBMessages.query.filter(
        DBMessages.user == update.message.from_user.id).first()
    name = update.message.text.strip()
    is_wrong = DBBirthdays.query.filter(DBBirthdays.name == name).filter(
        DBBirthdays.user == update.message.from_user.id).all()
    if len(is_wrong) > 0:
        bot.sendMessage(update.message.chat_id,
                        "Such record already exists.\n Enter a name:\n",
                        reply_markup=ReplyKeyboardRemove())
        return "Add_AddNameIsLink"
    messages.name = name
    db_session.commit()
    reply_keyboard = [["Yes", "No"]]
    update.message.reply_text("Do you want to provide a link? \n",
                              reply_markup=ReplyKeyboardMarkup(
                                  reply_keyboard, one_time_keyboard=True))
    return 'Add_IsLinkProvideOrAskDay'
예제 #16
0
파일: views.py 프로젝트: Mordeaux/Setback
def game(game_id):
    """API inpoint for Game objects. GET returns the JSON representation of the
       object for the client. POST lets the user play a card."""
    session['current_game'] = game_id
    if request.method == 'GET':
        time = float(request.args.get('timestamp'))
        return jsonify(game_view.view()) if not game_view.is_fresh(time) else 'null'
    elif request.method == 'POST':
        bid = request.form.get('bid')
        card = request.form.get('card')
        trump = request.form.get('trump')
        if bid:
            game_view.bid(int(bid))
        elif card:
            game_view.play_card(card)
        elif trump:
            game_view.set_trump(trump)
        db_session.commit()
        return jsonify(game_view.view())
예제 #17
0
def process():
	recs = db_session.query(Eq).filter_by().all()
   
	for record in recs:

		wpname = record.WeaponName
		wptype = record.WeaponType
		arname = record.ArmorName
		artype = record.ArmorType
		charid = record.CHARACTERS_CharacterID
		
		
		print wpname,wptype,arname,artype,charid
		if wpname != None:
			rec = db_session.query(Equipment).filter_by(Name = wpname, Type = wptype, EquipmentType = 'Weapon').first()
			
		else:
			rec = db_session.query(Equipment).filter_by(Name = arname, Type = artype, EquipmentType = 'Armor').first()
		
		obj = CharHasEquip(record.CHARACTERS_CharacterID,rec.RowID)	
		db_session.add(obj)
		db_session.commit()		
예제 #18
0
def add_month_add_birthday(bot, update):
    messages = DBMessages.query.filter(
        DBMessages.user == update.message.from_user.id).first()
    day = messages.day
    month = update.message.text.strip()
    name = messages.name
    link = messages.link
    if month not in birthday_class.MonthToNumber:
        reply_keyboard = [['January', 'February', 'March'],
                          ['April', 'May', 'June'],
                          ['July', 'August', 'September'],
                          ['October', 'November', 'December']]
        update.message.reply_text("Wrong month \n",
                                  reply_markup=ReplyKeyboardMarkup(
                                      reply_keyboard, one_time_keyboard=True))
        return "Add_AddMonthAddBirthday"
    if month == "February" and (str(day) == '31' or str(day) == '30'):
        key_board = [["/add"], ["/month", "/year"]]
        update.message.reply_text(text="No such day in February:(",
                                  reply_markup=ReplyKeyboardMarkup(
                                      key_board, one_time_keyboard=False))
        return "Menu"
    if month in {'April', 'June', 'September', 'November'
                 } and str(day) == '31':
        key_board = [["/add"], ["/month", "/year"]]
        update.message.reply_text(text="This month contains only 30 days;)",
                                  reply_markup=ReplyKeyboardMarkup(
                                      key_board, one_time_keyboard=False))
        return "Menu"
    n_date = date(2016, birthday_class.MonthToNumber[month], int(day))
    new_birthday = DBBirthdays(update.message.chat_id, n_date, name, link)
    db_session.add(new_birthday)
    db_session.commit()
    key_board = [["/add"], ["/month", "/year"]]
    update.message.reply_text(text="New birthday successfully added",
                              reply_markup=ReplyKeyboardMarkup(
                                  key_board, one_time_keyboard=False))
    return "Menu"
예제 #19
0
 def update(self):
     return db_session.commit()