рд╣рдо Vkontakte рдХреЛ рдкрдХреМрдбрд╝реА рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдпрд╛рдж рджрд┐рд▓рд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд╣рддреЗ рд╣реИрдВ

рдЖрдЬ рдореБрдЭреЗ рдлрд┐рд░ рд╕реЗ рдПрдХ рдирд┐рд╢реНрдЪрд┐рдд рд╕рдордп рдореЗрдВ рдПрдХ рдорд╣рддреНрд╡рдкреВрд░реНрдг рдЪреАрдЬ рдХреЗ рдПрдХ рд╡реНрдпрдХреНрддрд┐ рдХреЛ рдпрд╛рдж рджрд┐рд▓рд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд╣рд╛ рдЧрдпрд╛ рдерд╛ред рд▓реЗрдХрд┐рди рдХреНрдпрд╛ рд╣реЛрдЧрд╛ рдЕрдЧрд░ рдореИрдВ рд╣рд░ рд╕рдордп рдЕрдкрдиреЗ рдорд╛рдорд▓реЛрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рднреВрд▓ рдЬрд╛рдКрдВ, рдФрд░ рдЗрд╕рд╕реЗ рднреА рдЬреНрдпрд╛рджрд╛ рдХрд┐рд╕реА рдФрд░ рдХреЗ рдорд╛рдорд▓реЛрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ? рдФрд░ рдпрд╣рд╛рдБ рдореЗрд░реЗ рдкрд╕рдВрджреАрджрд╛ рдЕрдЬрдЧрд░ рдиреЗ рдлрд┐рд░ рд╕реЗ рдореЗрд░реА рдорджрдж рдХреАред



рдИрдорд╛рдирджрд╛рд░реА рд╕реЗ, рд╕рд╛рдорд╛рдиреНрдп рдЕрдиреБрд╕реНрдорд╛рд░рдХ рдкреНрд░реЛрдЧреНрд░рд╛рдо рдЬреЛ рдлреЛрди рдФрд░ рдХрдВрдкреНрдпреВрдЯрд░ рдиреЗ рдореБрдЭреЗ рдЙрдирдХреЗ рд╕реАрдорд┐рдд рдбрд┐рд╡рд╛рдЗрд╕ рд╕реНрдХреЛрдк рдХреЗ рдХрд╛рд░рдг рд╕реВрдЯ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдерд╛ + рдЙрдиреНрд╣реЛрдВрдиреЗ рд╕рдорд╕реНрдпрд╛ рдХреЛ рд╣рд▓ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрдм рдореБрдЭреЗ рдХреБрдЫ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдпрд╛рдж рджрд┐рд▓рд╛рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ, рд▓реЗрдХрд┐рди рдореБрдЭреЗ рдирд╣реАрдВред рдлреИрд╕рд▓рд╛ рдХрд┐рд╕реА рддрд░рд╣ рдЕрдкрдиреЗ рдЖрдк рд╣реБрдЖред рд▓реЗрдХрд┐рди рдХреНрдпрд╛ рд╣реЛрдЧрд╛ рдЕрдЧрд░ рдЕрдиреБрд╕реНрдорд╛рд░рдХ VKontakte рд╕рдВрджреЗрд╢реЛрдВ рдХреЗ рд░реВрдк рдореЗрдВ рдЖрддреЗ рд╣реИрдВ? рдпрджрд┐ рдореИрдВ рдХрд╛рд░реНрдпрд╕реНрдерд▓ рдореЗрдВ рдирд╣реАрдВ рд╣реВрдВ, рддреЛ рдлреЛрди рдЕрдкрдиреА рдкреБрд╢-рдЕрдк рд╕реВрдЪрдирд╛ рдХреЗ рд╕рд╛рде рдХрдВрдкрди рдХрд░реЗрдЧрд╛, рдФрд░ рдХрдВрдкреНрдпреВрдЯрд░ рдкрд░ рдпрд╣ рдЕрднреА рднреА рдЕрдзрд┐рдХ рд╕реНрдкрд╖реНрдЯ рд╣реИред рд▓рдХреНрд╖реНрдп рдПрдХ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд▓рд┐рдЦрдирд╛ рд╣реИ рдЬреЛ рдореЗрд░реЗ рдЕрдиреБрд╕реНрдорд╛рд░рдХ рд╕рдВрджреЗрд╢реЛрдВ рдХреЛ рдкрдврд╝рддрд╛ рд╣реИ рдФрд░ рдПрдХ рдирд┐рд╢реНрдЪрд┐рдд рд╕рдордп рдкрд░ рдХрд┐рд╕реА рдХреЛ рднреА рдпрд╛рдж рджрд┐рд▓рд╛рддрд╛ рд╣реИ рдХрд┐ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдХреНрдпрд╛ рдЖрд╡рд╢реНрдпрдХ рд╣реИред рдареАрдХ рд╣реИ, рдПрдХ рдмрд╛рд░ рд╡рд┐рдЪрд╛рд░ рдЖрдпрд╛ рд╣реИ, рдореИрдВ рдЗрд╕реЗ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрдЧреЗ рдмрдврд╝рддрд╛ рд╣реВрдВред

рд╣рдо рд╢реБрд░реВ рдХрд░рддреЗ рд╣реИрдВ


рдЪреЗрддрд╛рд╡рдиреА! рдЗрд╕ рд▓реЗрдЦ рдореЗрдВ рдореИрдВ рджрд┐рдЦрд╛рдКрдВрдЧрд╛ рдХрд┐ Vkontakte API рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдП рдмрд┐рдирд╛ рдпрд╣ рдХреИрд╕реЗ рдХрд░рдирд╛ рд╣реИред рд▓реЗрдХрд┐рди рдЬреЛ рд▓реЛрдЧ рдпрд╣ рджреЗрдЦрдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ (рдпрд╛ рдЙрдкрдпреЛрдЧ) рдпрд╣ рдХреИрд╕реЗ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рдПрдкреАрдЖрдИ, рдореИрдВ рдПрдкреАрдЖрдИ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдХрд╛рдо рдХрд░рдиреЗ рд╡рд╛рд▓реА рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХрд╛ рдПрдХ рд╕рдВрд╕реНрдХрд░рдг рд╕рдВрд▓рдЧреНрди рдХрд░ рд░рд╣рд╛ рд╣реВрдВред рд▓реЗрдЦ рдХреЗ рдЕрдВрдд рдореЗрдВ рдЗрд╕реЗ рд▓рд┐рдВрдХ рдХрд░реЗрдВред

рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, рдЗрд╕ рд╕рд╛рдорд╛рдЬрд┐рдХ рдиреЗрдЯрд╡рд░реНрдХ рдореЗрдВ рд▓реЙрдЧ рдЗрди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╣рдорд╛рд░реА рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд╕рд┐рдЦрд╛рдПрдВред рдпрд╣ рд╕рд░рд▓ рд╣реИ, рдорд╛рдирдХ рдореИрдХреЗрдирд╛рдЗрдЬ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВред Browser ()

br = mechanize.Browser() br.set_handle_equiv(True) br.set_handle_redirect(True) br.set_handle_robots(False) br.open('https://vk.com/') br.select_form(nr=0) br.form['email'] = name br.form['pass'] = password br.submit() 

рджреЗрдЦрд╛! рд╣рдо рдЕрдкрдиреЗ VKontakte рдкреЗрдЬ рдкрд░ рдЧрдПред рдЕрдм рд╣рдо VKontakte рдХреА рд╢рд╛рдВрдд рд╕реБрд╡рд┐рдзрд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ - рдЦреБрдж рдХреЛ рд▓рд┐рдЦрдиреЗ рдХреА рдХреНрд╖рдорддрд╛ (рдЬреЛ рдпрд╣ рдирд╣реАрдВ рдЬрд╛рдирддреЗ рдХрд┐ рдпрд╣ рдХреИрд╕реЗ рдХрд░рдирд╛ рд╣реИ, vk.com/im?sel=id рдкрд░ рдЬрд╛рдПрдВ , рдЬрд╣рд╛рдВ рд╕реЛрд╢рд▓ рдиреЗрдЯрд╡рд░реНрдХ рдкрд░ рдЖрдкрдХреА рдЖрдИрдбреА рдЖрдкрдХреА рдЖрдИрдбреА рд╣реИред рдореЗрд░реЗ рдорд╛рдорд▓реЗ рдореЗрдВ, рдпрд╣ 38591009 рд╣реИ)ред

рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, рдЗрди рд╕рдВрджреЗрд╢реЛрдВ рдХреЛ рдкрдврд╝реЗрдВред рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдореБрдЭреЗ рдЕрдкрдиреА рдЖрдИрдбреА рдкрддрд╛ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ (рдпрд╣ рдореБрдЦреНрдп рдкреГрд╖реНрда рдХреЗ рдХреЛрдб рдореЗрдВ рд╣реИ, рдФрд░ рдЗрд╕реЗ рдХрдИ рдмрд╛рд░ рджреЛрд╣рд░рд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ)ред

 self_username = 'username' def get_self_page_id(br): br.open('https://vk.com/'+self_username) return br.response().read().split('<form action="/wall')[1].split('?')[0] def check_messages(br): br.open('https://vk.com/im?sel='+get_self_page_id(br)) response = br.response().read() 

рд╣рдо рдЙрди 20 рд╕рдВрджреЗрд╢реЛрдВ рдХреЛ рджреЗрдЦрддреЗ рд╣реИрдВ рдЬреЛ рд╣рдордиреЗ рдЦреБрдж рдХреЛ рднреЗрдЬреЗ рдереЗред рдпрд╣ рд╣рдорд╛рд░реЗ рд▓рд┐рдП рдкрд░реНрдпрд╛рдкреНрдд рд╣реИред рдкреНрд░рддреНрдпреЗрдХ рд╕рдВрджреЗрд╢ рдХреА рдЕрдкрдиреА рд╡рд┐рд╢рд┐рд╖реНрдЯ (рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЗ рд▓рд┐рдП) рд╕рдВрдЦреНрдпрд╛ рд╣реЛрддреА рд╣реИ, рдпрд╣ рд╣рдорд╛рд░реЗ рд▓рд┐рдП рдмрд╣реБрдд рдЙрдкрдпреЛрдЧреА рд╣реИред рдлрд┐рд░ рдЖрдкрдХреЛ рд╕рднреА рд╕рдВрджреЗрд╢реЛрдВ рдХреЛ рдЕрд▓рдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЙрдирдХреЗ рд╕рд╛рде рдереЛрдбрд╝рд╛ рдЦреЗрд▓рдиреЗ рдХреА рдЬрд░реВрд░рдд рд╣реИ, рд╕реАрд░рд┐рдпрд▓ рдирдВрдмрд░ рд╕реЗ рдЯреЗрдХреНрд╕реНрдЯ рдХреЛ рдЕрд▓рдЧ рдХрд░реЗрдВ рдФрд░ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЛ рдпрд╣ рд╕рдордЭрдиреЗ рдХреЗ рд▓рд┐рдП рд╕рд┐рдЦрд╛рдПрдВ рдХрд┐ рдХреМрди рд╕реЗ рд╕рдВрджреЗрд╢ рдирдП рд╣реИрдВ рдФрд░ рдЬреЛ рдЕрдм рдкреНрд░рд╛рд╕рдВрдЧрд┐рдХ рдирд╣реАрдВ рд╣реИрдВред

 first_start = True msg_numbers = [] # .  ,    ,    . def play_with_messages(br, response): global first_start all_messages = response.split('class="messages bl_cont">')[1].split('<div id="mfoot"')[0].split('<a name="msg') all_numbers = [] global msg_numbers for msg in all_messages: if msg != all_messages[0]: msg_num = msg.split('">')[0] all_numbers.append(msg_num) if first_start: msg_numbers = all_numbers first_start = False new_numbers = set(all_numbers) - set(all_numbers).intersection(set(msg_numbers)) for num in new_numbers: reply_to_message(br, get_message_text(response, num)) #    .   . msg_numbers = all_numbers 

рд╣рдо рдПрдХ рдЖрдВрддрд░рд┐рдХ рд╕рдВрд╡рд╛рдж рд╢реБрд░реВ рдХрд░рддреЗ рд╣реИрдВ


рдмрд╣реБрдд рдмрдврд╝рд┐рдпрд╛ред рдЕрдм рд╣рдо рдЬрд╛рдирддреЗ рд╣реИрдВ рдХрд┐ рд╣рд╛рд▓ рд╣реА рдореЗрдВ рдореБрдЭреЗ рдХреНрдпрд╛ рд╕рдВрджреЗрд╢ рдорд┐рд▓реЗред рдпрд╣ рдЙрдиреНрд╣реЗрдВ рд╕рдордЭрдиреЗ рдФрд░ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдореЗрдВ рдХреБрдЫ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд░рд╣рддрд╛ рд╣реИред рдЖрдЗрдП рдкрд╣рд▓реЗ рдкрд╣рд▓рд╛ рдХрд╛рдо рд▓реЗрдВ:

 def reply_to_message(br, message): if message.find('') == -1: print 'nothing' else: print 'I obey, my lord' ms_words = message.split(' ') user = 'self' time_s = datetime.datetime.now().strftime('%H:%M') day_s = str(datetime.date.today()) msg = 'something went wrong' times = message.split('|') if len(times) == 1: times = '1' else: times = int(times[1]) if ms_words[1] == '': user = 'self' time_s = ms_words[2] msg = message.split(' ')[1].split('|')[0] elif ms_words[1] == '': user = 'self' time_s = ms_words[4] day_s = ms_words[2] msg = message.split(' ')[1].split('|')[0] elif ms_words[2] == '': user = get_page_id(br, ms_words[1]) time_s = ms_words[3] msg = message.split(' ')[1].split('|')[0] elif ms_words[2] == '': user = get_page_id(br, ms_words[1]) time_s = ms_words[5] day_s = ms_words[3] msg = message.split(' ')[1].split('|')[0] let_it_do(user, time_s, day_s, msg, times) # ,  ,       . 

рдпрд╣рд╛рдВ рдореИрдВ рдкреНрд░рд╛рдкреНрдд рд╕рдВрджреЗрд╢реЛрдВ рдХреЛ рд╕реВрдЪреАрдмрджреНрдз рдХрд░рддрд╛ рд╣реВрдВ рдФрд░ рдЪрд░ рдореЗрдВ рд╕рдВрдмрдВрдзрд┐рдд рдорд╛рди рджрд░реНрдЬ рдХрд░рддрд╛ рд╣реВрдВред рд╕рд╛рдорд╛рдиреНрдп рддреМрд░ рдкрд░, рдореИрдВ рдЙрди рд╕рд╡рд╛рд▓реЛрдВ рдХреЗ рдЬрд╡рд╛рдм рджреЗрддрд╛ рд╣реВрдВ "рдореБрдЭреЗ рдХреМрди рдпрд╛рдж рджрд┐рд▓рд╛рдирд╛ рдЪрд╛рд╣рд┐рдП?", "рдореБрдЭреЗ рдХреНрдпрд╛ рдпрд╛рдж рджрд┐рд▓рд╛рдирд╛ рдЪрд╛рд╣рд┐рдП?", "рдХрдм рдФрд░ рдХрд┐рддрдиреА рдмрд╛рд░ рдРрд╕рд╛ рдХрд░реЗрдВ?"ред рд╕рдВрджреЗрд╢ / рдХрдорд╛рдВрдб рдХрд╛ рд╕рд┐рдВрдЯреИрдХреНрд╕ рдЬрдЯрд┐рд▓ рдирд╣реАрдВ рдерд╛: рдпрд╛рдж рджрд┐рд▓рд╛рдирд╛ [рддрд┐рдерд┐] [рддрд╛рд░реАрдЦ] [рдкрд╛рда] рдкрд╛рда [рд╕рдВрджреЗрд╢ рдкрд╛рда] | [рдХрд┐рддрдиреА рдмрд╛рд░]ред рдпрд╣рд╛рдБ рдПрдХ рдЙрджрд╛рд╣рд░рдг рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ: "14:10 рдкрд╛рда рдкрд░ рдПрдХ рдФрд░ рдкрд░реАрдХреНрд╖рдг рдпрд╛рдж рджрд┐рд▓рд╛рдПрдВ | 4 "

рдЗрд╕рд▓рд┐рдП рд╣рдорд╛рд░рд╛ рд░реЛрдмреЛрдЯ рдПрдХ рдЖрдВрддрд░рд┐рдХ рд╕рдВрд╡рд╛рдж рджреЗрдЦрддрд╛ рд╣реИ

рдиреМрдХрд░рд┐рдпреЛрдВ рдХреЗ рднрдВрдбрд╛рд░рдг рдХреЗ рд▓рд┐рдП, рдореИрдВрдиреЗ sqlite3 рдбреЗрдЯрд╛рдмреЗрд╕ рдХрд╛ рдЪрдпрди рдХрд┐рдпрд╛ред рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдиреНрдпреВрдирддрдо рднрд╛рд░ рд╣реИ, рдпрд╣ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдЕрдирд╛рдпрд╛рд╕ рдкреНрд░рдХрдЯ рд╣реЛрддрд╛ рд╣реИред рдЕрдм рдбреЗрдЯрд╛рдмреЗрд╕ рдХреЛ рдХрд╛рд░реНрдп рд▓рд┐рдЦрдирд╛ рд╢реБрд░реВ рдХрд░рддреЗ рд╣реИрдВ, рдЬрд┐рд╕ рддрд░рд╣ рд╕реЗ рддрд╛рд░реАрдЦ рдФрд░ рд╕рдордп рдХреА рд╡реИрдзрддрд╛ рдХреА рдЬрд╛рдБрдЪ рдХрд░рддреЗ рд╣реИрдВред рдпрд╣ рдЗрд╕ рддрд░рд╣ рджрд┐рдЦрддрд╛ рд╣реИ:

 def valid_time(time_text): try: datetime.datetime.strptime(time_text, '%H:%M') return True except ValueError: send_message(br_fake, get_self_page_id(br), '  ') return False def valid_date(date_text): try: datetime.datetime.strptime(date_text, '%Y-%m-%d') return True except ValueError: send_message(br_fake, get_self_page_id(br), '  ') return False def let_it_do(user, time_s, day_s, message, times): if valid_time(time_s) and valid_date(day_s): c = conn.cursor() c.execute("INSERT INTO reminder (time, date, user, message, times) VALUES (?,?,?,?,?)",(time_s, day_s, user, message, str(times))) conn.commit() 

рдлрд┐рдирд┐рд╢ рд▓рд╛рдЗрди


рд╣рдо рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рд╕рдорд╛рдкрди рдХреЗ рдХрд░реАрдм рд╣реИрдВ! рд╣рдорд╛рд░реЗ рд░реЛрдмреЛрдЯ рдиреЗ рдХрд╛рд░реНрдп рдкреНрд░рд╛рдкреНрдд рдХрд┐рдП, рдЙрдиреНрд╣реЗрдВ рдЕрдкрдиреЗ рд▓рд┐рдП рд▓рд┐рдЦрд╛ред рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рдпрд╣ рдХреЗрд╡рд▓ рдЙрдиреНрд╣реЗрдВ рдкреВрд░рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдмрдиреА рд╣реБрдИ рд╣реИред рдлрд┐рд░ рдореИрдВ рдереЛрдбрд╝реА рдореБрд╢реНрдХрд┐рд▓ рдореЗрдВ рднрд╛рдЧрд╛ред рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд▓рдЧрд╛рддрд╛рд░ рдореЗрд░реЗ рд╕рдВрджреЗрд╢реЛрдВ рдХреЛ рдореБрдЭреЗ рдкрдврд╝рддреА рд╣реИ, рдЗрд╕рд▓рд┐рдП, рдпрджрд┐ рд╡рд╣ рдЙрдиреНрд╣реЗрдВ рдПрдХ рд╣реА рд╕рдВрд╡рд╛рдж рдХреЗ рд▓рд┐рдП рднреЗрдЬрддрд╛ рд╣реИ, рддреЛ рдореИрдВ рдЕрдкрдард┐рдд рд▓реЛрдЧреЛрдВ рдореЗрдВ рдХреБрдЫ рднреА рдирд╣реАрдВ рд▓рдЯрдХрд╛рдКрдВрдЧрд╛ред рдФрд░ рдпрд╣ рдмреБрд░рд╛ рд╣реИред рдЗрд╕ рдорд╛рдорд▓реЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдлрд░реНрдЬреА рдЦрд╛рддрд╛ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдХреЗ рд╕рдорд╕реНрдпрд╛ рдХреЛ рд╣рд▓ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред рдЕрдм рдпрджрд┐ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдореБрдЭреЗ рдХреБрдЫ рдпрд╛рдж рджрд┐рд▓рд╛рддреА рд╣реИ, рддреЛ рд╡рд╣ рджреВрд╕рд░реЗ рдЦрд╛рддреЗ рд╕реЗ рд▓рд┐рдЦрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдЕрдЧрд░ рдЖрдкрдХреЛ рдХрд┐рд╕реА рдФрд░ рдХреЛ рдпрд╛рдж рджрд┐рд▓рд╛рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рддреЛ рд╡рд╣ рдореЗрд░реА рдУрд░ рд╕реЗ рд▓рд┐рдЦрддрд╛ рд╣реИ, рддрд╛рдХрд┐ рд▓реЛрдЧреЛрдВ рдХреЛ рдбрд░рд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдирд╣реАрдВред

рджрд░рдЕрд╕рд▓, рдпрд╣рд╛рдВ рдХреБрдЫ рдлрд╝рдВрдХреНрд╢рди рд╣реИрдВ рдЬреЛ рдбреЗрдЯрд╛рдмреЗрд╕ рд╕реЗ рдкрдврд╝рдиреЗ рдФрд░ рд╕рдВрджреЗрд╢ рднреЗрдЬрдиреЗ рдХреЗ рд▓рд┐рдП рдЬрд┐рдореНрдореЗрджрд╛рд░ рд╣реИрдВ:

 def check_answers(): conn = sqlite3.connect('reminder.db') rows = get_rows(conn) for row in rows: print row[5] c = conn.cursor() if row[3] == 'self': pass send_message(br_fake, get_self_page_id(br), row[4].encode('utf-8')) else: send_message(br, row[3], row[4].encode('utf-8')) if row[5] == '1' or row[5] == 1: c.execute("DELETE FROM reminder WHERE id = ?;", str(row[0])) else: time_s = (datetime.datetime.now()+datetime.timedelta(seconds=60)).strftime('%H:%M') num = int(row[5]) - 1 c.execute("UPDATE reminder SET time = ?, times = ? WHERE id = ?",(time_s, str(num), row[0])) conn.commit() def send_message(br, id, message): br.open('https://vk.com/im?sel='+id) br.select_form(nr=0) br.form['message'] = message br.submit() 

рдЦреИрд░, рд╕рдВрджреЗрд╢ рднреЗрдЬрдиреЗ рдХреЗ рдмрд╛рдж, рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдбреЗрдЯрд╛рдмреЗрд╕ рд╕реЗ рд░рд┐рдХреЙрд░реНрдб рдХреЛ рд╣рдЯрд╛ рджреЗрддреА рд╣реИ, рдЕрдЧрд░ рдпрд╣ рдкреНрд░рд╛рд╕рдВрдЧрд┐рдХ рдирд╣реАрдВ рд╣реИ (рдпрджрд┐ рдЖрдкрдХреЛ рдЗрд╕реЗ рдХрдИ рдмрд╛рд░ рджреЛрд╣рд░рд╛рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рддреЛ рдпрд╣ рдЕрдиреБрд╕реНрдорд╛рд░рдХ рд╕рдордп рдХреЛ рдПрдХ рдорд┐рдирдЯ рдЖрдЧреЗ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░рддрд╛ рд╣реИ рдФрд░ рд╢реЗрд╖ рднрд╛рд╡рдирд╛рдУрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ рдХрдо рдХрд░ рджреЗрддрд╛ рд╣реИ)

рд╕рдВрдХреНрд╖реЗрдк рдореЗрдВ рдХрд╣рдирд╛


рдЗрд╕рд▓рд┐рдП рдПрдХ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдЬреЛ рдХреЛрдб рдХреА 200 рд▓рд╛рдЗрдиреЛрдВ рдореЗрдВ рдлрд┐рдЯ рд╣реЛрддреА рд╣реИ, рд╕реЛрд╢рд▓ рдиреЗрдЯрд╡рд░реНрдХ VKontakte рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЕрдкрдиреЗ рдЖрдк рдХреЛ рдФрд░ рджреВрд╕рд░реЛрдВ рдХреЛ рдпрд╛рдж рджрд┐рд▓рд╛рдиреЗ рдХреА рд╕рдорд╕реНрдпрд╛ рдХреЛ рд╣рд▓ рдХрд░рддреА рд╣реИред рдЖрдк рдЗрд╕реЗ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдпрд╣рд╛рдБ рд╕реЗ рдбрд╛рдЙрдирд▓реЛрдб рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ ред рдЕрдЧрд░ рдХрд┐рд╕реА рдХреЛ рдЕрдЪрд╛рдирдХ рдХрд┐рд╕реА рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ, рддреЛ рдореИрдВ рдЖрдкрдХреЛ рд╕рд▓рд╛рд╣ рджреЗрддрд╛ рд╣реВрдВ рдХрд┐ рдЯреБрдХрдбрд╝реЛрдВ рд╕реЗ рд▓реЗрдЦ рди рд▓реЗрдВ, рдпрд╣рд╛рдВ рдХреЗрд╡рд▓ рдХрд╛рд░реНрдпрд╛рддреНрдордХ рдЪреАрдЬреЗрдВ рд╣реИрдВред рдХреБрдЫ рд╕рд╣рд╛рдпрдХ рдЯреБрдХрдбрд╝реЗ рдУрд╡рд░ рдмрдЪреЗ рдереЗред рдореИрдВрдиреЗ рдЗрд╕реЗ рдЕрдкрдиреЗ рдПрдХ vps рдкрд░ рдЪрд▓рд╛рдпрд╛ред рдЕрдм рддрдХ, рдпрд╣ рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рд╣реИред


рд░реЛрдмреЛрдЯ рдореБрдЭреЗ рдмрддрд╛рддрд╛ рд╣реИ рдХрд┐ рдореБрдЭреЗ рдХреНрдпрд╛ рдХрд░рдирд╛ рд╣реИред рд░рд╡рд┐рд╡рд╛рд░ рдХреЛ! рд░рд╣рддреЗ рдереЗ

рд╕рд░рд▓ рд╕рдВрд╢реЛрдзрдиреЛрдВ рдХреЗ рдмрд╛рдж, рдпрд╣рд╛рдВ рдЖрдк рдХрд┐рд╕реА рдЕрдиреНрдп рд╕рд┐рд╕реНрдЯрдо рдкреНрд░рдмрдВрдзрди рдлрд╝рдВрдХреНрд╢рди рдХреЛ рднреА рд╢рд╛рдорд┐рд▓ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдпрджрд┐ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рджреВрд░рд╕реНрде рдХрдВрдкреНрдпреВрдЯрд░ рдкрд░ рдЪрд▓ рд░рд╣реА рд╣реИред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдбрд╛рдЙрдирд▓реЛрдб рдХреЗ рд▓рд┐рдП рдПрдХ рд╣реА рдзрд╛рд░ рд░рдЦреЗрдВред рдФрд░ рдЗрд╕рд▓рд┐рдП, рд╕рд╛рдорд╛рдиреНрдп рддреМрд░ рдкрд░, рдЖрдк рдПрдХ рд╡реЗрдм рд╕реЗрд╡рд╛ рдХреЛ рд▓рд╛рдЧреВ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдЬреЛ рд╣рд░ рдХрд┐рд╕реА рдХреЗ рд▓рд┐рдП рд░рд┐рдорд╛рдЗрдВрдбрд░ рдХреЗ рд╕рд╛рде рд╡реНрдпрд╡рд╣рд╛рд░ рдХрд░реЗрдЧрд╛ рдЬреЛ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдкреВрдЫрддрд╛ рд╣реИ (рдПрдХ рдмреЙрдЯ, рдЬреИрд╕рд╛ рдХрд┐ irc рдФрд░ icq рдореЗрдВ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдЕрдм рднреВрд▓ рдЧрдП рд╣реИрдВ) рд▓реЗрдХрд┐рди рдпреЗ рдЪреАрдЬреЗрдВ рдЕрдм рдЗрд╕ рд▓реЗрдЦ рдХреЗ рд▓рд┐рдП рдкреНрд░рд╛рд╕рдВрдЧрд┐рдХ рдирд╣реАрдВ рд╣реИрдВред рдореБрдЭреЗ рдмрд╣реБрдд рдЦреБрд╢реА рд╣реЛрдЧреА рдЕрдЧрд░ рдпрд╣ рдХрд┐рд╕реА рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧреА рдерд╛ред

рдзреНрдпрд╛рди рджреЗрдиреЗ рдХреЗ рд▓рд┐рдП рдЖрдк рд╕рднреА рдХрд╛ рдзрдиреНрдпрд╡рд╛рджред

UPD: рдПрдкреАрдЖрдИ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЯреЙрд░реНрдЪ рдЬрд▓рд╛рдХрд░ рдФрд░ рдкрд┐рдЪрдХрд╛рд░реА рдХреЛ рддреЗрдЬ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЬрд▓реНрджреА рдордд рдХрд░реЛред рдореИрдВ рдЬрд╛рдирдмреВрдЭрдХрд░ рдХреБрдЫ рдЕрд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рд╕реНрдерд╛рдиреЛрдВ рдХреЗ рдХрд╛рд░рдг рдЗрд╕ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдореЗрдВ рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реВрдВред рдЕрд░реНрдерд╛рддреН, рдкреНрд░рд╛рдзрд┐рдХрд░рдг рдФрд░ рд╕рдВрд╡рд╛рджреЛрдВ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдирд╛ред рд╣рд╛рд▓рд╛рдБрдХрд┐, рдкрд╣рд▓реА рд╣реА рдЯрд┐рдкреНрдкрдгреА рдореЗрдВ рдореИрдВрдиреЗ рдЗрд╕ рд╡рд┐рд╖рдп рдХреЛ рдЦреЛрд▓рд╛ред рдЗрд╕ рд▓реЗрдЦ рдХрд╛ рдЙрджреНрджреЗрд╢реНрдп рддреАрд╕рд░реЗ рдкрдХреНрд╖ рдХреА рдЬрд╛рдирдХрд╛рд░реА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдП рдмрд┐рдирд╛ рдЬрд▓реНрджреА рдФрд░ рд╡реНрдпрд╛рд╡рд╣рд╛рд░рд┐рдХ рд░реВрдк рд╕реЗ рдпрд╣ рджрд┐рдЦрд╛рдирд╛ рд╣реИ рдХрд┐ рднрд╛рд╖рд╛ рдбреЗрд╡рд▓рдкрд░ рдХреЗ рд▓рд┐рдП рдорд╛рддреГрднрд╛рд╖рд╛ рдХреЛ рдЫреЛрдбрд╝рдХрд░, рдЬреАрд╡рди рдХреЛ рдереЛрдбрд╝рд╛ рдЖрд╕рд╛рди рдмрдирд╛рддреЗ рд╣реИрдВред

UPD # 2: рдПрдХ рд╣реА рд╕реНрдХреНрд░рд┐рдкреНрдЯ, рд▓реЗрдХрд┐рди рд╢рдХреНрддрд┐рд╢рд╛рд▓реА Vkontakte API рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЖрдк рдпрд╣рд╛рдВ рдкреНрд░рд╛рдкреНрдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ ред рдЕрдм рдпрд╣ рдлрд░реНрдЬреА рдЦрд╛рддреЗ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдП рдмрд┐рдирд╛ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред рдпрд╣ рдПрдХ рдирд┐рд╢реНрдЪрд┐рдд рдкреНрд▓рд╕ рд╣реИред

Source: https://habr.com/ru/post/In216001/


All Articles