def unify_update(self, event: Event, payload: str = None) -> Update: """ Create the internal `Update` type from facebook's `Event` """ ud = Update() ud.original_update = event ud.client_name = self.client_name ud.message_id = event.message_mid ud.datetime = datetime.datetime.fromtimestamp(event.timestamp / 1000.0) ud.payload = payload ud.user, created = User.get_or_create(facebook_id=event.sender_id) if created: ud.user.save() if event.message_attachments: try: voice = next(x for x in event.message_attachments if x.get('type') == 'audio') ud.voice_id = voice['payload']['url'] except StopIteration: pass if hasattr(event, 'message_text'): ud.message_text = event.message_text return ud
def add_updates(): """Adds fake updates to the system""" current_users = db.session.query(User.user_id).all() for i in range(5000): update = Update(user_id=random.choice(current_users), update_body=faker.text(max_nb_chars=140), posted_at=datetime.now()) db.session.add(update) db.session.commit()
def submit_update(user_id, body): """Creates an update object with the text body and user_id passed in""" update = Update(user_id=user_id, update_body=body, posted_at=datetime.now()) db.session.add(update) db.session.commit() return update.update_id
def say(self, text): update = Update() update.message_text = text update.message_id = self.msg_count update.datetime = datetime.datetime.now() update.user = self.user with warnings.catch_warnings(): warnings.simplefilter("ignore") self.nlp.insert_understanding(update) context = self.context_manager.add_incoming_update(update) next_response = self.planning_agent.build_next_actions(context) actions = next_response.collect_actions() context.add_actions(actions) self.msg_count += 1 return actions
import sqlite3 from flask import Flask, render_template from threading import Thread from model import Update html_name = 'index.html' database_name = 'database.db' app = Flask(__name__) @app.route('/') def index(): conn = sqlite3.connect(database_name) conn.row_factory = sqlite3.Row points = conn.execute('SELECT * FROM points').fetchall() conn.close() return render_template(html_name, points=points) if __name__ == "__main__": thread1 = Thread(target=app.run) thread2 = Thread(target=Update().update_24) thread1.start() thread2.start() thread1.join() thread2.join()