@bot.event
async def on_member_update(before, after):
# Роль, которую нужно удалить со всех
role_for_removing = discord.utils.get(before.guild.roles, name='bla')
# Если роль была удалена
if len(before.roles) > len(after.roles):
for role in before.roles:
if role not in after.roles:
# удаленная роль
removed_role = role
break
# Здесь уже проверяем, была ли удалена нужная нам роль
if removed_role == role_for_removing:
for member in before.guild.members:
if role_for_removing in member.roles:
await member.remove_roles(role_for_removing)
import requests
import webbrowser
from urllib.parse import urlencode
APP_ID =
API_KEY = ''
REDIRECT_URI = 'http://127.0.0.1:8000'
SCOPE = 'oauth-user-show oauth-donation-index'
# 2. Authorization Request
data = {'client_id': APP_ID, 'redirect_uri': REDIRECT_URI, 'response_type': 'code', 'scope': SCOPE}
url = 'https://www.donationalerts.com/oauth/authorize?' + urlencode(data)
webbrowser.open(url)
code = input('code: ')
# 4. Getting Access Token
data = {'grant_type':'authorization_code', 'client_id':APP_ID, 'client_secret': API_KEY, 'redirect_uri': REDIRECT_URI, 'code': code}
r = requests.post('https://www.donationalerts.com/oauth/token', data=data).json()
access_token = r['access_token']
refresh_token = r['refresh_token']
# Authorized Request
headers = {'Authorization': 'Bearer {}'.format(access_token)}
response = requests.get('https://www.donationalerts.com/api/v1/alerts/donations', headers=headers)
r = response.json()
print(r)
парсер в цикле не обновляет полученный результат, а остается та же информация
for i in range(2):
?for i in range(2):
html = get_html(URL)
output = get_content(html.text)
print('\n' + output + ' ' + str(i))
if i == 1:
break
time.sleep(10)
if message.text == 'Еще':
register_next_step_handler
@bot.message_handler(commands=['search'])
def start_search(message):
keyboard = types.ReplyKeyboardMarkup(resize_keyboard=True)
keyboard.add(*[types.KeyboardButton(name) for name in ['Еще', 'Остановить']])
bot.send_message(message.chat.id, "Сейчас поищем!", reply_markup=keyboard)
sendannk(message, 0)
def sendannk(message, count):
if message.text == 'Остановить':
print('stop')
elif message.text == 'Еще' or count == 0: # Вместо count == 0 можно указать начальное сообщение, чтоб первый раз функция выполнилась, а не по колбэку, в этом случае было бы message.text == '/search', не увидил ничего криминального в каунт = 0 поэтому пусть будет
try:
ids = '12345678'
with sq.connect('DATABASE.db') as con:
cur = con.cursor()
cur.execute('''SELECT city FROM users WHERE userid = ?''', (ids,))
datacit = cur.fetchall()
datacit = datacit[0][0] ##город юзера
cur.execute('''SELECT rowid FROM users WHERE city = ? ''', (datacit,))
usersrowid = cur.fetchall()
lst = [] #rowid анкет по городу
for s in usersrowid:
sstr = str(s)
sssr = sstr.replace(')','').replace('(','').replace(',','')
lst.append(sssr)
cont = len(lst)
rowidus = lst[count]
with sq.connect('DATABASE.db') as con:
cur = con.cursor()
cur.execute('''SELECT name,old,city,photo,descr,cont FROM users WHERE rowid = ? ''',(rowidus,))
data = cur.fetchall()
dbdata = data[0]
usercity = dbdata[0]
username = dbdata[1]
userold = dbdata[2]
userphoto = dbdata[3]
userdescr = dbdata[4]
usercont = dbdata[5]
caption = username + ', ' + userold + ', ' + usercity + '\n' + userdescr + '\n' + usercont
bot.send_photo(message.chat.id, userphoto, caption)
count += 1
msg = bot.send_message(message.chat.id, "Искать еще?")
bot.register_next_step_handler(msg, sendannk, count)
except:
bot.send_message(message.chat.id, 'Анкеты кончились')
start_message(message)
@bot.message_handler(commands=['search'])
def start_search(message):
keyboard = types.ReplyKeyboardMarkup(resize_keyboard=True)
keyboard.add(*[types.KeyboardButton(name) for name in ['Еще', 'Остановить']])
bot.send_message(message.chat.id, "Сейчас поищем!", reply_markup=keyboard)
sendannk(message, 0)
def step_handler(message, count=0):
if message.text == 'Еще':
sendannk(message, count)
elif message.text == 'Остановить':
print('stop')
def sendannk(message, count):
try:
ids = '12345678'
with sq.connect('DATABASE.db') as con:
cur = con.cursor()
cur.execute('''SELECT city FROM users WHERE userid = ?''', (ids,))
datacit = cur.fetchall()
datacit = datacit[0][0] ##город юзера
cur.execute('''SELECT rowid FROM users WHERE city = ? ''', (datacit,))
usersrowid = cur.fetchall()
lst = [] #rowid анкет по городу
for s in usersrowid:
sstr = str(s)
sssr = sstr.replace(')','').replace('(','').replace(',','')
lst.append(sssr)
cont = len(lst)
rowidus = lst[count]
with sq.connect('DATABASE.db') as con:
cur = con.cursor()
cur.execute('''SELECT name,old,city,photo,descr,cont FROM users WHERE rowid = ? ''',(rowidus,))
data = cur.fetchall()
dbdata = data[0]
usercity = dbdata[0]
username = dbdata[1]
userold = dbdata[2]
userphoto = dbdata[3]
userdescr = dbdata[4]
usercont = dbdata[5]
caption = username + ', ' + userold + ', ' + usercity + '\n' + userdescr + '\n' + usercont
bot.send_photo(message.chat.id, userphoto, caption)
count += 1
msg = bot.send_message(message.chat.id, "Искать еще?")
bot.register_next_step_handler(msg, step_handler, count)
except:
bot.send_message(message.chat.id, 'Анкеты кончились')
start_message(message)
driver.find_element_by_class_name('form-control').find_elements_by_tag_name('option')[1].clik()
AttributeError: 'WebElement' object has no attribute 'clik'
return
, который возвращает значение из функци.def login_check ():
N = name_entry.get()
if len(str(N)) > 20:
l20 = Label( text = ' это имя слишком длинное ', font = 'Consolas' )
l20.grid( row = 13, column = 0, padx = 1, pady = 1 )
print("l1")# Эта строка что бы я видел сработала ли функция
login_p = False
elif len(str(N)) < 3:
l3 = Label( text = ' это имя слишком короткое ', font = 'Consolas' )
l3.grid( row = 13, column = 0, padx = 1, pady = 1 )
print("l2")# Эта строка что бы я видел сработала ли функция
login_p = False
else:
l0 = Label( text = ' ', font = 'Consolas' )
l0.grid( row = 13, column = 0, padx = 1, pady = 1 )
print("l3")# Эта строка что бы я видел сработала ли функция
login_p = True
return login_p
def Ввод ( event ):
TWp = TWpassword_chek()
login_p = login_check()
password_p = password_check()