Exemplo n.º 1
0
    def insert(self, title, category, description, date, site_url, url,
               image_url):
        try:
            conn = self.data_store.get_connection()
            entry_existing = r.table(self.db_article_table) \
                                 .get_all(title, index="title") \
                                 .count() \
                                 .run(conn) > 0

            if entry_existing:
                return

            r.table(self.db_article_table).insert({
                'title':
                title,
                'category':
                category,
                'description':
                description,
                'date':
                date,
                'site_url':
                site_url,
                'url':
                url,
                'image_url':
                image_url,
                'synchronised_to_discord':
                False
            }).run(conn)
        finally:
            DataStore.disconnect(conn)
Exemplo n.º 2
0
 def get_unsynchronised(self):
     try:
         conn = self.data_store.get_connection()
         return r.table(self.db_article_table) \
             .filter({'synchronised_to_discord': False}) \
             .run(conn)
     finally:
         DataStore.disconnect(conn)
Exemplo n.º 3
0
 def set_synchronised(self, unsynchronised_items):
     try:
         conn = self.data_store.get_connection()
         for item in unsynchronised_items:
             r.table(self.db_article_table) \
                 .get(item['id']) \
                 .update({"synchronised_to_discord": True}) \
                 .run(conn)
     finally:
         DataStore.disconnect(conn)
Exemplo n.º 4
0
def bootstrap_db(from_scratch):
    config = Configuration()
    conn = DataStore().get_connection()

    if from_scratch and config.get_db_name() in list(r.db_list().run(conn)):
        print('Forcing - dropping existing db')
        r.db_drop(config.get_db_name()).run(conn)

    if config.get_db_name() not in list(r.db_list().run(conn)):
        r.db_create(config.get_db_name()).run(conn)
    else:
        print(f"{config.get_db_name()} db already exists")

    if config.get_article_table() not in list(r.db(config.get_db_name()).table_list().run(conn)):
        r.db(config.get_db_name()).table_create(config.get_article_table()).run(conn)
        r.db(config.get_db_name()).table(config.get_article_table()).index_create('title').run(conn)
    else:
        print(f"{config.get_article_table()} table already exists")

    DataStore.disconnect(conn)
Exemplo n.º 5
0
 def clear(self):
     try:
         conn = self.data_store.get_connection()
         r.table(self.db_article_table).delete().run(conn)
     finally:
         DataStore.disconnect(conn)