def test_match_case_2(monkeypatch): s = main.Session('Bob', 'db.csv') bot_answers = ["P", "6", "8", "9", "11", "y"] def bot_response(self): return bot_answers.pop(0) monkeypatch.setattr('builtins.input', bot_response) s.play_all()
def test_match_case_1(monkeypatch): s = main.Session('Barbara', 'db.csv') # create monkeypatched input bot_answers = ["P", "9", "11", "y"] def bot_response(self): return bot_answers.pop(0) monkeypatch.setattr('builtins.input', bot_response) s.play_all()
def _init(): global ban_phrase_read_only_session ban_phrase_read_only_session = main.Session() ban_phrase_read_only_session.flush = lambda *a, **kw: print( 'BP: Flushing a readonly session.') print('Load ban phrases.') for i in BanPhrase.load_all(ban_phrase_read_only_session): ban_phrases.append(i) print(f'Done. Loaded {len(ban_phrases)} ban phrases.')
def test_session_abort(monkeypatch): s = main.Session("Alan", 'db.csv') # create monkeypatched input bot_answers = ["A", "y"] def bot_response(self): return bot_answers.pop(0) monkeypatch.setattr('builtins.input', bot_response) s.play_all()
def _init_settings(): global channel_settings_session channel_settings_session = main.Session() channel_settings_session.flush = lambda *a, **kw: print( 'CS: Flushing a readonly session.') print('Load channel settings.') with main.session_scope() as write_session: print('Loading existing channel settings...') for i in ChannelSettings.load_all(write_session): i.fill_defaults(forced=False) i.update() if i.channel_alias == -1: # global settings. channel_settings[SettingScope.GLOBAL.name] = i else: channel_settings[i.channel.last_known_username] = i print('OK') print('Creating missing channel settings...') for j in main.bot.channels_connected + [SettingScope.GLOBAL.name]: if j in channel_settings: continue cs = ChannelSettings() if j == SettingScope.GLOBAL.name: cs.channel_alias = -1 write_session.add(cs) continue channels = main.User.get_by_name(j.lower(), write_session) if len(channels) != 1: continue cs.channel = channels[0] write_session.add(cs) channel_settings[channels[0].last_known_username] = cs print('OK') print('Commit.') print(f'Done. Loaded {len(channel_settings)} channel settings entries.')
class GreeterBot(bot.VKBot): def __init__(self,greet_msg='Welcome, {name} ({screen_name})!', goodbye_msg='Goodbye, {name} ({screen_name}).'): self.greet_message=greet_msg self.goodbye_message=goodbye_msg def on_message(self, message, session): if 'action' in message: if message['action']['type']=='chat_invite_user': member_id = str(message['action']['member_id']) data=session.vk_session.get_api().users.get(user_ids=member_id, fields='screen_name')[0] name=data['first_name']+' '+data['last_name'] screen_name=data['screen_name'] self.send_message(message=self.greet_message.format(name=name, screen_name=screen_name)) elif message['action']['type']=='chat_kick_user': member_id = str(message['action']['member_id']) data=session.vk_session.get_api().users.get(user_ids=member_id, fields='screen_name')[0] name=data['first_name']+' '+data['last_name'] screen_name=data['screen_name'] self.send_message(message=self.goodbye_message.format(name=name, screen_name=screen_name)) if __name__ == '__main__': k=GreeterBot() s=vk_api.VkApi(login=input('Login: '), password=getpass.getpass()) s.auth() supers=main.Session(s, 2000000001) m=main.VKBotManager([(supers,k)]) try: input() except: m.running=False
import logging import sys import main logging.basicConfig(stream=sys.stdout, level=logging.ERROR) username = "******" password = "******" if __name__ == "__main__": print "Executing run.py" print "Prepare Session" s = main.Session(username, password, "NE") print "Login..." l = s.get_leaf() leaf_info = l.get_latest_battery_status() print "leaf_info.state_of_charge %s" % leaf_info.state_of_charge longitude, lattitude = main.get_location(l)
def generate(name): sys.path.append(os.path.join(os.getcwd())) from QUENLIG import statistics from QUENLIG import configuration import main from QUENLIG import questions import cgi configuration.session = main.Session(name) configuration.root = os.getcwd() configuration.version = os.path.basename(os.getcwd()) configuration.session.init() os.chdir(configuration.session.dir) stats = statistics.question_stats() ba = [] filename = 'xxx-' + name + '.html' print('\nGenerate', os.path.join(os.getcwd(), filename)) f = open(filename, 'w') f.write(''' <body onclick="compute();"> <style> pre { margin: 0.1em } td { vertical-align:top } #rank { position: fixed ; right:0px; top: 0px; } #rank TD { font-size: 80% } TD.radio { white-space: nowrap ; } table.top > TBODY > TR > TD { border-top: 1px solid black ; border-left: 1px solid black ; } table.top { border-spacing: 0px ; border: 1px solid black; } @media print { #rank { position: inherit ; } #rank TD { font-size: 100% ;} } table.points { text-align: center ; } </style> ''') students = list(stats.all_students) students.sort(lambda x,y: cmp(x.name, y.name)) f.write("""<script><!-- var win ; function compute() { if ( win == undefined || win.closed ) { win = window.open() ; if ( ! win ) return; win.document.open('text/html') ; win.document.write('Total:<div id="top"></div>'); win.document.close() ; } t = document.getElementsByTagName('input') ; students = [] ; for(var i = 0; i < t.length; i++) { if ( t[i].checked ) { name = t[i].name.split('/')[0] ; if ( students[name] != undefined ) students[name] = Number(students[name]) + Number(t[i].value) ; else students[name] = Number(t[i].value) ; } } s = '<table border class="top">' ; for(i in students) s += '<tr><td>' + i + '</td><td>' + students[i] + '</td></tr>' ; s += '</table>' ; win.document.getElementById('top').innerHTML = s ; } var note_pas = 1 ; var note_nb = 5 ; function radio(name, question, answer) { document.write('<tr><td class="radio"><table class="points"><tr>') ; for(var i=0; i<note_nb; i++) document.write('<td>' + i*note_pas + '</td>') ; document.write('</tr><tr>') ; for(var i=0; i<note_nb; i++) document.write('<td><input type="radio" name="' + name + '/' + question + '" value="' + i*note_pas + '"></td>') ; document.write('</tr></table></td><td>' + name + '</td><td>' + answer + '</td></tr>') ; } --></script> """) for q in questions.sorted_questions: q = q.name f.write('<h1>' + q + '</h1>\n') f.write('<p>' + questions.questions[q].question('') + '</p>\n') f.write('<table class="top">\n') t = [] for s in students: for a in s.answers.values(): if a.question == q and a.answered: t.append( (s.name, q, cgi.escape(a.answered) .replace('\r\n','\n') .replace('\n','<br>') .replace('\\','\\\\') .replace('"', '\\"')) ) break t.sort(key=lambda x: x[2].strip().lower()) for tt in t: f.write('<script>radio("%s","%s","%s");</script>\n' % tt) f.write('</table>') f.close()