Example #1
0
    async def name(self, ctx):
        perm = self.perm(ctx)
        if perm:
            return await ctx.send(perm)
        update_data(self.data)
        content = ctx.message.content.split()
        voice = ctx.author.voice
        guild_id = str(ctx.guild.id)

        if not voice:
            return self.name.reset_cooldown(ctx)

        chan = voice.channel
        voice_id = str(voice.channel.id)

        if voice_id not in self.data[guild_id]['channels'].keys():
            return self.name.reset_cooldown(ctx)

        if ctx.author.id != self.data[guild_id]['channels'][voice_id]:
            return self.name.reset_cooldown(ctx)

        if len(content) > 2:
            await chan.edit(name=" ".join(content[2:]))
            await ctx.message.channel.send("Name successfully changed.")
        else:
            return self.name.reset_cooldown(ctx)
Example #2
0
 def test_update_data_entry_2(self):
     utils.update_data(entry = self.entry_2,
                   vdata = self.vdata,
                   fdata = self.fdata,
                   vdata_next_mo = self.vdata_next_mo,
                   fdata_next_mo = self.fdata_next_mo,
                   trips = self.trips,
                   w = self.w,
                   h = self.h,
                   n = self.n)
     
     self.assertEqual(self.vdata[0,0,0,0,0], 0)  # pcount at start
     self.assertEqual(self.vdata[0,0,0,0,1], 0)  # tcount at start
     self.assertEqual(self.vdata[1,0,0,1,0], 61) # pcount at end
     self.assertEqual(self.vdata[1,0,0,1,1], 1)  # tcount at end
     
     self.assertEqual(self.fdata[0,1,0,0,0,0,0], 61) # Dif time slots, so fdata[0] should be all 0s
     self.assertEqual(self.fdata[0,1,0,0,0,0,1], 1)
     self.assertEqual(self.fdata[1,1,0,0,0,0,0], 0) # Dif time slots, we're looking at the end time (t=1)
     self.assertEqual(self.fdata[1,1,0,0,0,0,1], 0)
     
     self.assertEqual(self.trips[0,0,0], 61)
     self.assertEqual(self.trips[0,0,1], 1)
     self.assertEqual(self.trips[0,1,0], 0)
     self.assertEqual(self.trips[0,1,1], 0)
     self.assertEqual(self.trips[1,0,0], 0)
     self.assertEqual(self.trips[1,0,1], 0)
     self.assertEqual(self.trips[1,1,0], 0)
     self.assertEqual(self.trips[1,1,1], 0)
Example #3
0
def add_letter(message):
    user = message.from_user.id
    params = utils.get_data(user, "params")
    cyr = "абвгдежзийклмнопрстуфхцчшэюя"
    lat = "abcdefghijklmnopqrstuvwxyz"
    bad_letters = "ыьщ"
    if len(message.text) > 1:
        txt = "Мне нужна только одна буква"
        msg = bot.send_message(message.chat.id, txt)
        bot.register_next_step_handler(msg, add_letter)
    else:
        if message.text.lower() in bad_letters:
            txt = "Очень смешно... давай по нормальному"
            msg = bot.send_message(message.chat.id, txt)
            bot.register_next_step_handler(msg, add_letter)
        elif params["lang"] == "cyr" and message.text.lower() not in cyr:
            txt = "Это не русская буква, а ты выбрал кирилицу, не надо так)\nДавай еще раз"
            msg = bot.send_message(message.chat.id, txt)
            bot.register_next_step_handler(msg, add_letter)
        elif params["lang"] == "lat" and message.text.lower() not in lat:
            txt = "Это не латинская буква, а ты выбрал латинницу, не надо так)\nДавай еще раз"
            msg = bot.send_message(message.chat.id, txt)
            bot.register_next_step_handler(msg, add_letter)
        else:
            utils.update_data(user, params={"name": f"{message.text.upper()}"},
                              filters={"name": f"На букву {message.text.upper()}"})
            send_for_params(message)
Example #4
0
def send_random(message):
    conn = utils.SQLighter(cfg.database)
    user = message.from_user.id
    response_list = conn.get_random()
    utils.update_data(user, response_list=response_list)
    txt = f"""Твое случайное имя {random.choice(response_list)}?"""
    bot.send_message(message.chat.id, txt, reply_markup=start_keyboard())
Example #5
0
async def on_voice_state_update(member, before, after):
    # if the user connects to the set voice channel...
    if after.channel and after.channel.id == data[str(
            member.guild.id)]['main']:
        category = bot.get_channel(after.channel.category_id)

        # create a new channel, named after the member name, set permissions, and move the member to it
        change = await member.guild.create_voice_channel(
            f"{member.name}'s channel", category=category)
        await change.set_permissions(member, view_channel=True, connect=True)
        await member.move_to(change)

        logger.info(
            f"{member.name} joined and was moved to \"{member.name}'s channel\""
        )
        # update the data
        data[str(member.guild.id)]["channels"][str(change.id)] = member.id

    # if the user disconnects from a personnal voice channel
    if before.channel and str(before.channel.id) in data[str(
            member.guild.id)]["channels"]:
        if not len(
                before.channel.members
        ):  # if there is no more users in the voice channel, delete it
            data[str(member.guild.id)]['channels'].pop(str(before.channel.id))
            await before.channel.delete(reason='Last member leave')
            logger.info(
                f"Personnal voice channel \"{before.channel.name}\" is empty so it has been deleted."
            )

    update_json(data)
    update_data(data)
Example #6
0
    async def set_channel(self, ctx):
        content = ctx.message.content.split()

        if len(content) <= 1:
            await ctx.send("Please specify a channel id.")
            return

        if not content[1].isdigit():
            await ctx.send("Please use a valid id.")
            return

        channel = self.bot.get_channel(int(content[1]))

        if not channel:
            await ctx.send("Please use a valid id.")
            return

        if not isinstance(channel, discord.VoiceChannel):
            await ctx.send("Please use a voice channel id.")
            return

        if self.data[str(ctx.guild.id)]["main"] is not None:
            self.logger.warning(
                f"Channel already set {self.data[str(ctx.guild.id)]['main']}.")
        self.logger.info(f"Set main channel <{channel.name}.{channel.id}>")

        self.data[str(ctx.guild.id)]['main'] = channel.id
        await ctx.send("Main channel set.")

        update_json(self.data)
        update_data(self.data)
Example #7
0
async def on_guild_join(guild):
    update_data(data)

    data[str(guild.id)] = {"main": None, "channels": {}}
    game = discord.Game(f"Manage {len(bot.guilds)} servers")
    await bot.change_presence(activity=game)

    update_json(data)
Example #8
0
async def on_guild_remove(guild):
    update_data(data)

    del data[str(guild.id)]
    game = discord.Game(f"Manage {len(bot.guilds)} servers")
    await bot.change_presence(activity=game)

    update_json(data)
Example #9
0
def update(conf):
    conf.update({
        'source': 'reddit',
        'doc_type': 'posts',
        'url': 'http://www.reddit.com/r/{}'.format(conf['reddit'])
    })

    update_data(conf, get_posts(conf))
Example #10
0
def update(conf):
    conf.update({
        'source': 'stackoverflow',
        'doc_type': 'bounties',
        'url': URL_TEMPLATE.format(conf['stackoverflow'])
    })

    update_data(conf, get_posts(conf))
Example #11
0
def update(conf):
    conf.update({
        'source': 'github',
        'doc_type': 'repositories',
        'url': URL_TEMPLATE.format(conf['github'])
    })

    update_data(conf, get_posts(conf))
Example #12
0
    async def unset_channel(self, ctx):
        self.data[str(ctx.guild.id)]['main'] = None
        await ctx.send("Main channel reset.")

        self.logger.info("Main channel reset.")

        update_json(self.data)
        update_data(self.data)
Example #13
0
 async def _set(self, ctx):
     update_data(self.data)
     content = ctx.message.content.split()
     keywords = [
         "private", "public", "owner", "places", "name", "hide", "reveal",
         "invite", "kick"
     ]
     if len(content) <= 1 or content[1] not in keywords:
         await ctx.send(embed=config_help_embed(ctx.author))
Example #14
0
def cloudsight_process_result(image, result):
    if result is None or result['status'] == 'timeout':
        return
    print image, result
    if result['status'] == 'completed':
        resultdict[image]['cloudsight'] = (result['status'], result['name'])
    else:
        resultdict[image]['cloudsight'] = (result['status'], result['reason'])
    update_data(resultdict)
Example #15
0
async def on_ready():
    update_data(data)
    logger.info(f"Bot logged as {bot.user.name}")
    for guild in bot.guilds:
        if str(guild.id) not in data.keys():
            data[str(guild.id)] = {"main": None, "channels": {}}
    game = discord.Game(f"Manage {len(bot.guilds)} servers")
    await bot.change_presence(activity=game)

    update_json(data)
Example #16
0
    async def owner(self, ctx):
        perm = self.perm(ctx)
        if perm:
            return await ctx.send(perm)
        update_data(self.data)
        guild_id = str(ctx.guild.id)
        if len(ctx.message.mentions):
            self.data[guild_id]['channels'][str(ctx.author.voice.channel.id)] = ctx.message.mentions[0].id
            await ctx.message.channel.send(f"Owner successfully changed to {ctx.message.mentions[0].name}.")

        update_json(self.data)
Example #17
0
def train(parameters, X, logg, model, saver, sess, y):

    for i in range(parameters.num_data_perturbations):

        epoch_counter = range(
            parameters.num_epochs
        ) if parameters.num_epochs else itertools.count()

        for j in epoch_counter:

            feed = {
                model.input_ph: X,
                model.output_ph: y[:, None],
            }

            loss, _ = sess.run([model.loss, model.update_op], feed)

            logg.record(i, j, loss)

            if j % 100 == 0:
                logger.info('Loss at data perturb %i epoch %i: %f', i, j, loss)

            if loss < parameters.loss_cutoff:
                parameters.loss_cutoff *= 1.03
                logger.info('Num iterations to convergence: %i', j)
                break

        X, y = update_data(X, y)

        saver.save(sess,
                   os.path.join(parameters.model_dir_path, 'model'),
                   global_step=i)

        sess.run(model.reset_ops)
Example #18
0
    def update_loop():
        start = time.time()
        print('Update is running')
        new_data = []
        global data
        global val_added
        stmp = datetime.now()
        val_added += 1
        for stk in data:
            #frame = pd.read_sql(("SELECT * from {}").format(stk['SYM']), mydb)
            rw = utils.update_data(stk)
            #print(rw)
            new_stk = {
                'timestamp': str(stmp),
                'SYM': stk['SYM'],
                'mean': stk['mean'],
                'var': stk['var'],
                'Open': rw[0],
                'High': rw[1],
                'Low': rw[2],
                'Curr': rw[3]
            }
            new_data.append(new_stk)
            c.execute(("INSERT INTO {} VALUES ('{}', {}, {}, {}, {})").format(
                stk['SYM'], stmp, rw[0], rw[1], rw[2], rw[3]))

        mydb.commit()
        data = new_data
        print('...\nUpdated succesfully!')
Example #19
0
async def on_ready():
    update_data(data)

    logger.info(f"Bot logged as {bot.user.name}")
    for guild in bot.guilds:
        if str(guild.id) not in data.keys():
            data[str(guild.id)] = {"main": None, "channels": {}}
    game = discord.Game(f"Manage {len(bot.guilds)} servers")
    await bot.change_presence(activity=game)

    update_json(data)
    
    # handling the existence of the data.json file
    if not os.path.exists('data.json'):
        with open('data.json', 'w') as data:
            data.write('{}')
Example #20
0
    def __update_cookies(self):
        print("\n")
        if "uuid" in self.cookies:
            if "ukey" in self.cookies:
                print("Qidian cookie expired!")
                ukey = input("Enter new ukey: ")
                self.cookies["ukey"] = ukey
            else:
                print("Qidian cookie incomplete!")
                self.cookies["ukey"] = input("Enter ukey: ")
        elif "ukey" in self.cookies:
            print("Qidian cookie incomplete!")
            self.cookies["uuid"] = input("Enter uuid: ")
        else:
            print("Qidian requires a cookie!")
            self.cookies["uuid"] = input("Enter uuid: ")
            self.cookies["ukey"] = input("Enter ukey: ")

        utils.update_data(COOKIES_DATA_KEY, self.cookies)
Example #21
0
 def test_update_data_entry_2_then_entry_1(self):
     utils.update_data(entry = self.entry_2,
           vdata = self.vdata,
           fdata = self.fdata,
           vdata_next_mo = self.vdata_next_mo,
           fdata_next_mo = self.fdata_next_mo,
           trips = self.trips,
           w = self.w,
           h = self.h,
           n = self.n)
     
     utils.update_data(entry = self.entry_1,
                       vdata = self.vdata,
                       fdata = self.fdata,
                       vdata_next_mo = self.vdata_next_mo,
                       fdata_next_mo = self.fdata_next_mo,
                       trips = self.trips,
                       w = self.w,
                       h = self.h,
                       n = self.n)
     
     self.assertEqual(self.vdata[0,0,0,0,0], 123)  # pcount at start, t=0
     self.assertEqual(self.vdata[0,0,0,0,1], 1)    # tcount at start, t=0
     self.assertEqual(self.vdata[1,0,0,0,0], 61)   # pcount at start, t=1
     self.assertEqual(self.vdata[1,0,0,0,1], 1)    # tcount at start, t=1
     self.assertEqual(self.vdata[0,0,0,1,0], 0)    # pcount at end, t=0
     self.assertEqual(self.vdata[0,0,0,1,1], 0)    # tcount at end, t=0
     self.assertEqual(self.vdata[1,0,0,1,0], 184)  # pcount at end, t=1
     self.assertEqual(self.vdata[1,0,0,1,1], 2)    # tcount at end, t=1
     
     self.assertEqual(self.fdata[0,1,0,0,0,0,0], 61)  # Trip 1 (dif time slots, 0 to 1, pcount)
     self.assertEqual(self.fdata[0,1,0,0,0,0,1], 1)   # Trip 1 (dif time slots, 0 to 1, tcoount)
     self.assertEqual(self.fdata[1,1,0,0,0,0,0], 123) # Trip 2 (same time slot, t=1, pcount)
     self.assertEqual(self.fdata[1,1,0,0,0,0,1], 1)   # Trip 2 (same time slot, t=1, pcount)
     
     self.assertEqual(self.trips[0,0,0], 184) # 184 passengers total, both start in and end in Manhattan
     self.assertEqual(self.trips[0,0,1], 2)   # 2 trips total, both start in and end in Manhattan
     self.assertEqual(self.trips[0,1,0], 0)   # No trips (or passengers) starting from or ending in Manhattan
     self.assertEqual(self.trips[0,1,1], 0)
     self.assertEqual(self.trips[1,0,0], 0)
     self.assertEqual(self.trips[1,0,1], 0)
     self.assertEqual(self.trips[1,1,0], 0)
     self.assertEqual(self.trips[1,1,1], 0)
Example #22
0
def main():
    print("Welcome to BND (Bene's Novel Downloader)")

    book = choose_book()
    if book is None:
        return

    utils.update_data("last_book", book)
    utils.ensure_config(book)
    conf = config.load_config(book)

    if conf is None:
        return

    if conf.name is None:
        print("Selected", book)
    else:
        print("Selected", book, "-", conf.name)

    chapters = utils.get_chapters_on_disk(book)
    if chapters:
        print("Chapters on disk:")
        print(utils.format_range_list(utils.group_chapters(chapters)))
    else:
        print("No chapters on disk")
    print()

    if utils.input_yes_no("Do you want to download chapters?"):
        downloaded_chapters = download_chapters(conf)
        if downloaded_chapters is None:
            return

        print()
        if not utils.input_yes_no("Do you also want to convert chapters?"):
            print("Ok. Bye.")
            return

        convert_chapters(conf, *downloaded_chapters)
        return

    print()
    convert_chapters(conf)
Example #23
0
    def test_update_data_entry_1(self):
        utils.update_data(entry = self.entry_1,
                          vdata = self.vdata,
                          fdata = self.fdata,
                          vdata_next_mo = self.vdata_next_mo,
                          fdata_next_mo = self.fdata_next_mo,
                          trips = self.trips,
                          w = self.w,
                          h = self.h,
                          n = self.n)
        '''
        print("\n\nDEBUG\n\n")
        print(self.vdata[0:2])
        print("####")
        print(self.fdata[:,0:2])
        print("####")
        print(self.trips)
        print("\n\nDEBUG\n\n")
        import code
        code.interact(local=locals())
        '''
        self.assertEqual(self.vdata[0,0,0,0,0], 123) # pcount at start
        self.assertEqual(self.vdata[0,0,0,0,1], 1)   # tcount at start
        self.assertEqual(self.vdata[1,0,0,1,0], 123) # pcount at end
        self.assertEqual(self.vdata[1,0,0,1,1], 1)   # tcount at end
        
        self.assertEqual(self.fdata[0,1,0,0,0,0,0], 0) # Dif time slots, so fdata[0] should be all 0s
        self.assertEqual(self.fdata[0,1,0,0,0,0,1], 0)
        self.assertEqual(self.fdata[1,1,0,0,0,0,0], 123) # Dif time slots, we're looking at the end time (t=1)

        
        self.assertEqual(self.trips[0,0,0], 123)
        self.assertEqual(self.trips[0,0,1], 1)
        self.assertEqual(self.trips[0,1,0], 0)
        self.assertEqual(self.trips[0,1,1], 0)
        self.assertEqual(self.trips[1,0,0], 0)
        self.assertEqual(self.trips[1,0,1], 0)
        self.assertEqual(self.trips[1,1,0], 0)
        self.assertEqual(self.trips[1,1,1], 0)
Example #24
0
def send_for_params(message):
    user = message.from_user.id
    params = utils.get_data(user, "params")
    filters = utils.get_data(user, "filters").values()
    txt_list = ["Посмотрим что у меня для тебя есть", "Дай подумать", "Секундочку", "Уже ищу"]
    markup = telebot.types.ReplyKeyboardRemove(selective=True)
    bot.send_message(message.chat.id, random.choice(txt_list), reply_markup=markup)
    try:
        conn = utils.SQLighter(cfg.database)
        response_list = conn.select_for_params(**params)
        utils.update_data(user, response_list=response_list)
        txt = f"""Фильтры: {", ".join(filters)}
    
{random.choice(answer_list)} '{random.choice(response_list)}'?"""
        bot.send_message(message.chat.id, text=txt, reply_markup=inline_keyboard())
    except IndexError:
        txt = f"""Фильтры: {", ".join(filters)}

С этими фильтрами нет ниодного варианта :(
Попробуй очистить фильтры и начать сначала"""
        keyboard = telebot.types.InlineKeyboardMarkup()
        clear_filter = telebot.types.InlineKeyboardButton(text="Очистить фильтры", callback_data="clear_filter")
        keyboard.add(clear_filter)
        bot.send_message(message.chat.id, text=txt, reply_markup=keyboard)
Example #25
0
def get_address(element, node):
    address = {}
    # Build address move to function
    for elem in element.iter("tag"):
        if elem.attrib['k'].find('addr') != -1 and elem.attrib['k'].count(':') == 1:
            address[elem.attrib['k'].replace("addr:", "")] = elem.attrib['v']
        elif elem.attrib['k'].count(':') == 0:
            node[elem.attrib['k']] = elem.attrib['v']
        else:
            pass
    if address:
        if address.has_key('street'):
            address['street_better_name'] = update_data(address['street'])
        node['address'] = address

        if 'city' in address:
            address['city_better_name'] = update_city(address['city'])
        node['address'] = address
    return node
Example #26
0
def update(conf):
    conf.update({'source': 'stackoverflow', 'doc_type': 'bounties',
                 'url': URL_TEMPLATE.format(conf['stackoverflow'])})

    update_data(conf, get_posts(conf))
Example #27
0
def start_trading_bot(client, trade_pairs, kline_size, window_short,
                      window_long):

    #### Initialization ####
    DF_dict = {}
    positions = {}
    for symbol in trade_pairs:
        # pull initial dataframes
        utils.delete_data(symbol, kline_size)
        DF_dict[symbol] = utils.retrieve_data(client,
                                              symbol,
                                              kline_size,
                                              save=True,
                                              start="2021-04-13")

        # get information about current investments:
        bal = utils.get_currency_balance(client, symbol)
        if (float(bal) * float(DF_dict[symbol]["close"].iloc[-1])) > 3:
            positions[symbol] = True
        else:
            positions[symbol] = False
    print(positions)

    #### Actual bot ####
    while True:
        log.info(
            f'########################### Next Iteration: {datetime.datetime.now().strftime("%Y-%m-%d %H:%M:%S")} ########################### '
        )
        start = time.time()
        for symbol in trade_pairs:
            log.info(
                f"########################### {symbol} ###########################"
            )
            # update data, try catch the potential api resetting
            try:
                DF_dict[symbol] = utils.update_data(client,
                                                    symbol,
                                                    kline_size,
                                                    save=True)
            except Exception as e:
                print(e)
                log.info(
                    f"Data pull error on Binance side, waiting 15 minutes to reconnect"
                )
                break

            # calculating rolling_windows and z-score
            DF_dict[symbol] = utils.make_rolling_and_score(
                DF_dict[symbol], windows_short[symbol], windows_long[symbol])
            print(DF_dict[symbol].tail(5))
            current_opportunity = DF_dict[symbol]["score"].iloc[-1]
            log.info(f"Z-Score of {symbol}:            {current_opportunity}")

            # getting account information like balance etc.
            try:
                bal = utils.get_currency_balance(client, symbol)
            except Exception as e:
                print(e)
                log.info(
                    f"Data pull error on Binance side, waiting 15 minutes to reconnect"
                )
                break

            log.info(
                f'current balance of {symbol.split("EUR")[0]}:       {bal}')

            # check opportunities and potentially issue an order
            if current_opportunity > 0:
                if positions[symbol]:
                    pass
                else:
                    # Actual buy function, handle with care!
                    order = client.create_order(symbol=symbol,
                                                side=SIDE_BUY,
                                                type=ORDER_TYPE_MARKET,
                                                quoteOrderQty=300)
                    print(order)
                    positions[symbol] = True

                    log.info(
                        f'                                         market BUY order placed for {symbol} !!!'
                    )

            else:
                if positions[symbol]:
                    # Actual sell function, handle with care!
                    decimal_place = 15
                    while decimal_place > -1:
                        try:
                            order = client.create_order(symbol=symbol,
                                                        side=SIDE_SELL,
                                                        type=ORDER_TYPE_MARKET,
                                                        quantity=quantity)
                            break
                        except:
                            decimal_place -= 1
                            quantity = np.round(
                                float(
                                    client.get_asset_balance(
                                        asset=symbol.split("EUR")[0])["free"]),
                                decimal_place)

                    print(order)
                    positions[symbol] = False

                    log.info(
                        f'                                         market SELL order placed for {symbol} !!!'
                    )

                else:
                    pass
        end = time.time()
        # sleep for exactly 15 minutes since start
        time.sleep(60 * 15 - (end - start) - 1 / 24)
Example #28
0
def update(conf):
    conf.update({'source': 'github', 'doc_type': 'repositories',
                 'url': URL_TEMPLATE.format(conf['github'])})

    update_data(conf, get_posts(conf))
Example #29
0
def select_male_lat(message):
    user = message.from_user.id
    utils.update_data(user, params={"lang": "lat", "is_male": 1}, filters={"main": "Клички для котов на латиннице"})
    txt = "Есть такие категории"
    bot.send_message(message.chat.id, txt, reply_markup=main_keyboard_lat())
Example #30
0
def update(conf):
    conf.update({"source": "reddit", "doc_type": "posts", "url": "http://www.reddit.com/r/{}".format(conf["reddit"])})

    update_data(conf, get_posts(conf))
Example #31
0
def update(conf):
    conf.update({'source': 'google_search', 'doc_type': 'posts'})
    update_data(conf, get_posts(conf))
Example #32
0
def add_type(message):
    user = message.from_user.id
    utils.update_data(user, params={"type": f"{message.text}"}, filters={"type": f"{message.text}"})
    send_for_params(message)
Example #33
0
def select_female_cyr(message):
    user = message.from_user.id
    utils.update_data(user, params={"lang": "cyr", "is_male": 0}, filters={"main": "Клички для кошек на кирилице"})
    txt = "Есть такие категории"
    bot.send_message(message.chat.id, txt, reply_markup=main_keyboard_cyr())
Example #34
0
def update(conf):
    conf.update({'source': 'reddit', 'doc_type': 'posts',
                 'urls': ['http://www.reddit.com/r/{}'.format(x)
                          for x in conf['reddit']]})

    update_data(conf, get_posts(conf))
Example #35
0
def update(conf):
    conf.update({'source': 'google_search', 'doc_type': 'posts'})
    update_data(conf, get_posts(conf))
Example #36
0
def update(conf):
    conf.update(CONF)
    update_data(conf, get_posts())
Example #37
0
def update(conf):
    conf.update({'source': 'twitter', 'doc_type': 'posts'})
    update_data(conf, get_posts(conf))