def pay_account(size, our_account, our_memo_account, node, active_key, info):
    # Sends steem to account and then updates the account memo (even if not needed, keeps it near the top)
    try_num = 0
    print("here")
    while try_num < 5:
        try_num += 1

        try:
            s = Steem(node=node, keys=active_key)
            print(2)
            s.transfer(info["account"],
                       size,
                       asset="STEEM",
                       account=our_account,
                       memo="payment of " + str(size) + " Steem.")
            info["steem-owed"] -= size
            main.save_memo(info,
                           our_memo_account,
                           our_account,
                           active_key,
                           node=node)
            break
        except Exception as e:
            print(e)
            pass
def start_account(account_name,
                  active_key,
                  keyword_list=[],
                  our_memo_account="space-pictures",
                  our_sending_account="anarchyhasnogods",
                  node="wss://steemd-int.steemit.com"):

    print("here")
    if keyword_list == []:
        keyword_list.append(["gp", "0"])
        keyword_list.append(["ad-token-perm", "0"])
        keyword_list.append(["token-upvote-perm", "0"])
        keyword_list.append(["token-upvote-temp", "0"])
        keyword_list.append(["ad-token-temp", "0"])
        keyword_list.append(["token-post-review", "0"])
        keyword_list.append(["experience", "0"])
        keyword_list.append(["steem-owed", "0"])
        keyword_list.append(["vote", "PLACEHOLDER"])
        keyword_list.append(["vote-link", "PLACEHOLDER"])

    keyword_list.append(["account", account_name])
    real_list = []
    for i in keyword_list:
        real_list.append(i[0])
        real_list.append(i[1])
    info = list_to_full_string(real_list)

    main.save_memo(info, our_memo_account, our_sending_account, active_key)
示例#3
0
    def publish_trending(self, trending_post_list):
        print("PUBLISH TRENDING")
        print(len(trending_post_list))
        trending_json_list = []

        trending_list = {
            "number": 0,
            "type": "trending",
            "time": round(time.time(), 2),
            "posts": []
        }

        while True:
            print("WHILE TRUE")
            print(trending_list)
            print(trending_post_list)
            if len(trending_post_list) == 0:
                trending_json_list.append(json.dumps(trending_list))

                break
            trending_post = trending_post_list.pop(0)
            print("TRENDING POST")
            print(trending_post)
            copy_list = copy.deepcopy(trending_list)
            print(trending_list)
            if len(json.dumps(
                    copy_list["posts"].append(trending_post))) > 1950:

                trending_json_list.append(json.dumps(trending_list))

                trending_list = {
                    "type": "trending",
                    "number": trending_list[0]["number"] + 1,
                    "time": round(time.time(), 2),
                    "posts": []
                }

            else:
                print("splitting post")
                trending_list["posts"].append(
                    [trending_post[0], trending_post[1].split("@")[1]])
            print("END WHILE TRUE")
        for i in trending_json_list:
            print("SAVE MEMO")

            main.save_memo(json.loads(i),
                           self.memo_account,
                           self.main_account,
                           self.active_key,
                           node=self.node)
def update_account(account, our_sending_account, our_memo_account, changes,
                   active_key):
    # Changes is composed of a list of changes
    #Each seperate change is [keyword,new_information]
    info = get_account_info(account, our_sending_account, our_memo_account)[2]

    for i in range(0, len(info), 2):  # First one is key, second one is var
        for ii in range(len(changes)):
            if changes[ii][0] == info[i]:  # Checks if key is correct
                if changes[ii][1] == "DELETE":
                    info[i + 1].pop()
                    info[i].pop()
                elif changes[ii][0] == "vote":
                    if info[i + 1] == "PLACEHOLDER":
                        info[i + 1] = ""
                    info[i + 1] += ";" + changes[ii][1]

                else:
                    info[i + 1] = changes[ii][
                        1]  # if key is correct changes variable
                changes.pop(ii)  # removes it from changes and exists loop
                break

    if len(changes) != 0:
        for i in changes:
            info.append(i[0])
            info.append(i[1])

    info = list_to_full_string(info)
    return main.save_memo(info, our_memo_account, our_sending_account,
                          active_key)
def vote_post(post_link, submission_author, submission_time, ratio,
              our_memo_account, our_sending_account, active_key):

    return main.save_memo(
        "post_link:" + post_link + ":submission_author:" + submission_author +
        ":time:" + str(submission_time) + ":ratio:" + str(ratio),
        our_memo_account, our_sending_account, active_key)
def start_account(account_name,
                  active_key,
                  our_memo_account="space-pictures",
                  our_sending_account="anarchyhasnogods",
                  node="wss://steemd-int.steemit.com"):
    keyword_dict = {}
    # creates account
    print("HERE")

    global keywordlist
    for i in keywordlist:
        print("HERE2")
        keyword_dict[i[0]] = i[1]
    print("HERE3")
    keyword_dict["account"] = account_name

    #info = list_to_full_string(real_list)
    #print("ddd", our_sending_account, our_memo_account)
    print("HERE4")
    main.save_memo(keyword_dict,
                   our_memo_account,
                   our_sending_account,
                   active_key,
                   node=node)
def vote_link_create(account_memo,
                     our_memo_account,
                     our_sending_account,
                     active_key,
                     node,
                     create_link_anyway=False):
    # if the memo is too large it makes a static memo that is saved on its account
    print("this_thing")
    if len(json.dumps(account_memo)) > 2000 or create_link_anyway:

        index = main.save_memo(json.dumps(account_memo["vote"]),
                               our_memo_account,
                               our_sending_account,
                               active_key,
                               node=node)
        account_memo["vote"] = 0
        account_memo["vote-link"].append(index)
    return account_memo
def list_to_full_string(list_set, our_memo_account, our_sending_account,
                        active_key):
    # turns objects into info that can be used as json
    # if its too long sends a static memo for votes
    dump_list = json.dumps(list_set)
    dump_list = json.dumps(dump_list)
    total_len = len(dump_list)
    #print(total_len)
    if total_len > 2000:
        vote_list_post = main.save_memo(
            {
                "account": list_set["account"],
                "type": "vote-link",
                "vote": list_set["vote"]
            }, our_memo_account, our_sending_account, active_key)
        list_set["vote"] = []
        list_set["vote-link"].append([vote_list_post, our_memo_account])

    #print(list_set)
    return list_set
def update_account(account,
                   our_sending_account,
                   our_memo_account,
                   changes,
                   active_key,
                   node,
                   account_info=[]):
    # Changes is composed of a list of changes

    #Each seperate change is [keyword,new_information]
    print("UPDATING ACC")
    if account_info == []:
        info = get_account_info(account, active_key, our_sending_account,
                                our_memo_account, node)
        if info == None:
            return False
        info_dict = info[2]
    else:
        info_dict = account_info

    #print("info",info)
    #print(info, account, our_sending_account, our_memo_account)

    #print("THISS")
    for i in changes:
        #print(i)
        if i[0] == "vote":
            info_dict[i[0]].append(i[1])
        elif i[1] == "DELETE":
            del info_dict[i[0]]

        else:
            info_dict[i[0]] = i[1]

    thing = list_to_full_string(info_dict, our_memo_account,
                                our_sending_account, active_key)
    return main.save_memo(thing,
                          our_memo_account,
                          our_sending_account,
                          active_key,
                          node=node)
def vote_post(post_link, submission_author, submission_time, vote_list, ratio,
              our_memo_account, our_sending_account, active_key, node,
              vote_size):
    # creates basic account memo
    json_thing = {}
    json_thing["type"] = "post"
    json_thing["post_link"] = post_link
    json_thing["submission_author"] = submission_author
    json_thing["time"] = submission_time
    json_thing["ratio"] = ratio
    json_thing["vote-list"] = vote_list
    json_thing["vote_size"] = vote_size
    if len(vote_list) < 2:
        json_thing["message"] = "less than 2 votes, cannot vote"
    #print(json_thing)

    return main.save_memo(json_thing,
                          our_memo_account,
                          our_sending_account,
                          active_key,
                          node=node)
示例#11
0
    def fix_memo(self, memo_list):

        # takes memos and checks if any overwrote the changes of the other
        # this can happen if the memos come at intervals that are too close together
        print("FIXING MEMOs")
        print(memo_list)
        highest_version = -1
        same_version = False
        memos_to_fix = []
        for i in memo_list:
            print(i["version"], i)
            if i["version"] == highest_version:

                print("SAME VERSION")
                same_version = True
                memos_to_fix.append(i)
            elif i["version"] > highest_version:
                highest_version = i["version"]
                memos_to_fix = [i]

        if not same_version:
            print("RETURNING")
            return

        changes = []
        og_memo_num = 0
        for i in memos_to_fix:
            for ii in i["changes"]:
                append_to = True
                for iii in changes:
                    if iii[0] == ii[0] and iii[1] == ii[1]:
                        append_to = False

                if append_to:
                    changes.append(ii)
        print("CHANGES")
        print(changes)

        if len(changes) < 2 or len(changes) == len(memos_to_fix[0]["changes"]):
            print("returning before memo")
            return
        try:

            oldest = 0
            for i in memos_to_fix:
                if i["old"] > oldest:
                    oldest = i["old"]
        except Exception as e:
            print(e)

        memo = json.loads(
            main.retrieve(account=self.main_account,
                          sent_to=self.memo_account,
                          position=oldest,
                          node=self.node)[0][2])
        print("MEMO")
        print(memo)
        for i in memo:
            rel_changes = []
            for ii in changes:
                if i == ii[0]:
                    rel_changes.append(ii)
                    print("REL CHANGES APPEND")
            if len(rel_changes) > 1:
                if rel_changes[0][0] == "vote":
                    for c in rel_changes:
                        memo["vote"].append(c[1])
                elif rel_changes[0][0] == "groups":
                    pass
                elif rel_changes[0][0] == "vote-link":
                    for c in rel_changes:
                        memo["vote-link"].append(c[1])
                else:
                    for c in rel_changes:
                        memo[c[0]] += memo[c[0]] - c[1]
            elif len(rel_changes) < 1:
                pass
            else:
                memo[rel_changes[0][0]] = rel_changes[0][1]
        memo["version"] = highest_version + 1
        print(memo)

        memo["changes"] = changes
        main.save_memo(memo,
                       self.memo_account,
                       self.main_account,
                       self.active_key,
                       node=self.node)
def static_vote_memo(vote_list):

    return main.save_memo(info, our_memo_account, our_sending_account,
                          active_key)