Exemplo n.º 1
0
def updateJson(twitter):
    boards = {}
    for name in options['json_urls']:
        if options['debug']:
            print(name)

        necrolab_board = nsb_necrolab_board.leaderboard(name, boards)
        board = nsb_leaderboard.leaderboard(necrolab_board)
        board.fetch()
        boards[name] = board

        if board.hasFile():
            board.read()
            entries = board.diffingEntries(twitter=twitter, num=500)
        else:
            entries = board.topEntries(5)

        for entry in entries:
            message = composeMessage(entry, board, twitter)
            if options['tweet']:
                twitter.postTweet(message)
            print(message.encode('ascii', 'replace'))
            #message = composeMessage(entry, board, twitter)
            #print(message)
    if options['backup']:
        for board in boards:
            board.write()
Exemplo n.º 2
0
def update(twitter):
    print('start at: ', time.strftime('%c'))

    index = nsb_index.index()
    index.fetch()

    for index_entry in index.entries():
        steam_board = nsb_steam_board.steam_board(index_entry)
        board = nsb_leaderboard.leaderboard(steam_board)

        if not steam_board.include():
            print('skipping: ', index_entry)
        else:
            if options['debug']:
                print("including: ", str(board))

            if not board.hasFile() and not options['handle-new']:
                print('New leaderboard', str(board), 'use --handle-new to use')
                continue

            board.fetch()
            if options['churn']:
                if options['backup']:
                    board.write()

            if not board.hasFile():
                entries = board.topEntries(5)
            else:
                board.read()
                try:
                    deletedEntries = board.checkForDeleted(90)
                except:
                    print('checkForDeleted threw exception, skipping')
                    #we probably have an older leaderboard
                    continue
                if deletedEntries > 0:
                    print("Found", deletedEntries, "deleted entries in",
                          str(board))
                if deletedEntries > len(board.history):
                    raise Exception('ERROR: {} {} all entries deleted'.format(
                        deletedEntries, board))
                if deletedEntries > 60:
                    raise Exception(
                        'ERROR: {} too many deleted entries'.format(
                            deletedEntries))
                entries = board.diffingEntries(twitter=twitter)

            for entry in entries:
                message = composeMessage(entry, board, twitter)
                if options['tweet']:
                    twitter.postTweet(message)
                if options['debug']:
                    print(message.encode('ascii', 'replace'))

            if options['backup']:
                board.write()
Exemplo n.º 3
0
def update(twitter):
    print('start at: ', time.strftime('%c'))

    debug = options['debug']

    index = nsb_index.index()
    index.read_xml()
    #index.fetch()

    for entry in index.entries():
        steam_board = nsb_steam_board.steam_board(entry)
        board = nsb_leaderboard.leaderboard(steam_board)
        #print(board)
        if steam_board.include():
            #print("hi")
            if debug:
                #print(repr(board))
                print("including: ", str(board))
            if not board.hasFile() and not options['handle-new']:
                print('New leaderboard', str(board), 'use --handle-new to use')
                continue

            board.fetch()

            if board.hasFile():
                board.read()
                deletedEntries = board.checkForDeleted(90)
                if deletedEntries > 0:
                    print("Found", deletedEntries, "deleted entries in",
                          str(board))
                if deletedEntries >= len(board.history):
                    raise Exception('ERROR:', deletedEntries,
                                    'all entries deleted')
                if deletedEntries > 60:
                    raise Exception('ERROR:', deletedEntries,
                                    'too many deleted entries')
                entries = board.diffingEntries(twitter=twitter)
            else:
                entries = board.topEntries(5)

            for entry in entries:
                #print(nsb_steam.steamname(int(entry['steam_id']), options['steam_key']))
                message = composeMessage(entry, board, twitter)
                if options['tweet']:
                    twitter.postTweet(message)
                print(message.encode('ascii', 'replace'))

            if options['backup']:
                board.write()
Exemplo n.º 4
0
def printBoard():
    index = nsb_index.index()
    index.fetch()

    for entry in index.entries():
        board = nsb_leaderboard.leaderboard(entry, 'xml')
        if board.include() and board.info.character == 'bard':
            board.fetch()
            print(board.topEntries())
    return

    nsb_steam.downloadBoard(lbid, currPath, start, end)
    root = getRoot(path + lbid + '.xml')
    index = getEntryIndex(root)
    for entry in root[index]:
        steamid, score, rank = extractEntry(entry)
        name = steamname(steamid)
        printPlayer(name, rank, score)
Exemplo n.º 5
0
def updateSRL(twitter):
    srl_board = nsb_srl_board.leaderboard()
    board = nsb_leaderboard.leaderboard(srl_board)
    board.fetch()

    if board.hasFile():
        board.read()
        entries = board.diffingEntries()
    else:
        entries = board.topEntries(board.board.entriesToReportOnRankDiff())

    for entry in entries:
        message = composeMessage(entry, board, twitter)
        if options['tweet']:
            twitter.postTweet(message)
        print(message.encode('ascii', 'replace'))
        #message = composeMessage(entry, board, twitter)
        #print(message)
    if options['backup']:
        board.write()
Exemplo n.º 6
0
def postDaily(date, twitter):
    index = nsb_index.index()
    index.fetch()

    for entry in index.entries():
        steam_board = nsb_steam_board.steam_board(entry)
        board = nsb_leaderboard.leaderboard(steam_board)
        if not board.board._availability == 'prod':
            continue
        if board.board._coop:
            continue
        if not board.board.daily():
            continue
        if board.board._date != date:
            continue
        print(str(board))

        board.fetch()
        message = composeDailyMessage(board.topEntries(3), board, twitter)
        if options['tweet']:
            twitter.postTweet(message)
        if options['debug']:
            print(message)