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)
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)
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)