Example #1
0
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()
Example #2
0
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.')
Example #4
0
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()
Example #5
0
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.')
Example #6
0
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
Example #7
0
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)
Example #8
0
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()