create table mytable (id integer primary key,
user_id integer,
....,
unique(user_id)
)
INSERT INTO mytable (user_id, user_name) VALUES (...) ON CONFLICT(user_id) DO NOTHING
result = cur.execute('select 1 from mytable where user_id = ?), (user_id, )).fetchone()
if not result:
# делаем insert
...
t2 = time.time()
delta = t2-tdict[member.id]
print(datetime.timedelta(seconds=delta))
number = # на сколько нужно увеличить то число
cur.execute("UPDATE users SET number = number + ? WHERE user_id = ?", (number, user_id))
async def number(message: types.Message):
num = message.get_args()
await cur.execute("SELECT `user_id` FROM `admins` WHERE id = %s", (id, ))
sql = cur.fetchone()
if sql:
user_id = sql[0]
print(user_id)
@bot.message_handler(commands=['start'])
def start(message):
markup = types.ReplyKeyboardMarkup(resize_keyboard=True)
butt_1 = types.KeyboardButton("ПОЛУЧИТЬ ДЕНЬГИ")
butt_2 = types.KeyboardButton("БОНУС")
markup.add(butt_1, butt_2)
bot.send_message(message.chat.id, "Чё надо?", reply_markup=markup)
Дальше у меня возник вопрос и ступор - мы почему то возвращаем не результат выполнения функции wrapper, а возвращаем саму функцию-объект.
def f1(): return 1
a = f1() # присваиваем результат работы функции, т.е. в a будет 1
a = f1 # присваиваем саму функцию
# тогда a - это не результат работы функции f1, а сама функция f1
# и мы можем ее запустить
print(a() ) # выведет 1, т.к. мы через a запустили f1
@uppercase
def greet(): ...
# то когда мы запускаем функцию
greet()
# по факту запускается
uppercase(greet)()
original_result = func() # запускает переданную ему функцию на исполнение, в нашем случае greet
return f'Большие {original_result.upper()}' # и возвращает строку с результатами исполнения
И она сама каким-то образом вызывается и выполняется, хоть мы и явно не пишем это.
uppercase(greet)()
а т.к. uppercase(greet) возвращает wrapper
то uppercase(greet)() запускает wrapper()
if cursor.execute(f"SELECT username FROM users WHERE username = ?", (username, )).fetchone(): #Если такой пользователь уже есть
except Exception as e:
print('ошибка:', e)
return False
check = (i['number'].astype(str).str.lower().str.strip().str.fullmatch('two (six|for)')
print('совпадений:', sum(check))
...
def GetStudent(self, _id):
return self.Handler[_id]
async def process_start_command(message: types.Message):
number1 = message.text.split()[1]
if not (number1.isdigit() and 1 <= int(number1) <= 1000):
await message.answer(f'введите число меньше 1000')
else:
random_number = random.randint(0, int(number1))
(pd.Timestamp('today').normalize()+severstal_df['duration']).dt.time
# blacklist, whitelist соответственно список запрещенных и разрешенных
def check(text):
if any(link in text for link in blacklist):
return False
elif any(link in text for link in whitelist):
return True
return False
def check(text):
if re.search('|'.join(map(re.escape, blacklist)), text):
return False
elif re.search('|'.join(map(re.escape, whitelist)), text):
return True
return False
@bot.message_handler(commands=['start'])
if message.reply_to_message:
bot.send_message(message.chat.id, ~f'@{message.from_user.username} Обнял @{message.reply_to_message.from_user.username}')