Ejemplo n.º 1
0
def generate_fixed_entity_relation():
    entities = config.db['entity']
    conn, cursor = models.connect_db()
    for ent in entities:
        e_tag = ent['tag']
        if e_tag['source'] == 'from-db' and e_tag['range'] == [1, 1] and len(
                e_tag['content']):
            name = ent['alias']
            ref = e_tag['content'][0]
            table = name + '_' + ref
            cursor.execute('select * from %s' % (name))
            name_list = [x[0] for x in cursor.fetchall()]
            cursor.execute('select * from %s' % (ref))
            ref_list = [x[0] for x in cursor.fetchall()]
            ref_end = len(ref_list) - 1
            name_ref_list = [(name_list[i], ref_list[random.randint(0,ref_end)]) \
            for i in range(len(name_list))]
            try:
                cursor.execute('insert into %s values (?,?)' % (table),
                               table_list)
                conn.commit()
            except Exception as e:
                models.close_db(conn, cursor)
                raise e

    models.close_db(conn, cursor)
Ejemplo n.º 2
0
def generate_fixed_entity():
    entities = config.db['entity']
    conn, cursor = models.connect_db()
    for ent in entities:
        if ent['amount'] == 'fixed':
            name = ent['alias']
            table_list = [name + str(i + 1) for i in range(ent['range'][0])]
            try:
                cursor.execute('insert into %s values (?)' % (name),
                               table_list)
                conn.commit()
            except Exception as e:
                models.close_db(conn, cursor)
                raise e
    models.close_db(conn, cursor)
Ejemplo n.º 3
0
def clean_up(error):
    close_db()
Ejemplo n.º 4
0
"""SocialBots

A collection on different social media bots

Created: 2019
Author: Henrik A. Christensen
"""

from models import close_db, open_db
from socialmediabot import SocialMediaBot

if __name__ == '__main__':
    open_db()
    smb = SocialMediaBot()
    smb.run()
    close_db()
Ejemplo n.º 5
0
def generate_dynamic_entity(dic):
    table_name = dic['alias']
    distr_list = dic['stage']
    relations = config.db['relation']
    conn, cursor = models.connect_db()
    cursor.execute('select count(*) from %s' % (table_name))
    start_index = cursor.fetchall()[0][0] + 1
    counter = 0
    for rela in relations:
        if rela['source'] == table_name and rela['target'] == table_name:
            break
    # for test run time
    time_start = time.time()
    fake_size = start_index - 1
    gen_start_i = start_index
    gen_rela_num = 0
    fg = 0
    for x in range(dic['count']):
        try:
            distr = distr_list[counter]
            gen_num = 0
            if distr['type'] == 'gaussian':
                gen_num = round(random.gauss(distr['mu'], distr['sigma']))
            else:
                gen_num = round(random.randint(distr['min'], distr['max']))
            for i in range(start_index, start_index + gen_num):
                item_id = table_name + str(i)
                item_tag = ''
                # TODO: generate tags
                data.user_data.add((item_id, item_tag))
            # TODO: just for follow, hard code
            #       should find relations including table_name
            fake_size += gen_num
            gen_rela_num += gen_num
            change_list = [gen_start_i, gen_rela_num, fake_size]
            # print('******************************************************')
            # print('in_degree_node', data.degree_node)
            # print('in info', [len(x) for x in data.degree_node])
            # print('out_degree_noe', data.out_degree_node)
            # print('out info', [len(x) for x in data.out_degree_node])
            # print('======================================================')
            fg = generate_dynamic_relation(change_list, table_name, rela)
            # print('======================================================')
            time.sleep(config.delay_time)
            counter = (counter + 1) % (len(distr_list))
            start_index = len(data.user_data) + 1
            if fg == 0:
                gen_start_i = start_index
                gen_rela_num = 0
            # print(start_index)
        except Exception as e:
            # models.close_db(conn, cursor)
            raise e
    while fg == 1:
        try:
            distr = distr_list[counter]
            gen_num = 0
            if distr['type'] == 'gaussian':
                gen_num = round(random.gauss(distr['mu'], distr['sigma']))
            else:
                gen_num = round(random.randint(distr['min'], distr['max']))
            for i in range(start_index, start_index + gen_num):
                item_id = table_name + str(i)
                item_tag = ''
                # TODO: generate tags
                data.user_data.add((item_id, item_tag))
            # TODO: just for follow, hard code
            #       should find relations including table_name
            fake_size += gen_num
            gen_rela_num += gen_num
            change_list = [gen_start_i, gen_rela_num, fake_size]
            # print('======================================================')
            fg = generate_dynamic_relation(change_list, table_name, rela)
            # print('======================================================')
            time.sleep(config.delay_time)
            counter = (counter + 1) % (len(distr_list))
            start_index = len(data.user_data) + 1
            if fg == 0:
                gen_start_i = start_index
                gen_rela_num = 0
        except Exception as e:
            raise e
    with open('graph_size.py', 'w') as f:
        f.write(str(fake_size))
    print('elapsed %f sec. nodes: %d' % (time.time() - time_start, fake_size))
    try:
        cursor.executemany('insert into %s values (?,?)' % table_name,
                           list(data.user_data))
        cursor.executemany("insert into %s values (?,?,?)" % rela['alias'],
                           list(data.follow_data))
        conn.commit()
        # print([len(x) for x in data.degree_node])
    except Exception as e:
        models.close_db(conn, cursor)
        raise e
Ejemplo n.º 6
0
def on_teardown(error):
    models.close_db(error)