diff options
author | wushin <pasekei@gmail.com> | 2014-09-26 12:14:03 -0500 |
---|---|---|
committer | wushin <pasekei@gmail.com> | 2014-09-26 12:14:03 -0500 |
commit | c8ae45d091f8a97c5a94d1d8032721984dff94c4 (patch) | |
tree | 76c5e8ed65baee2add9916ae8769debfaa00184a /tradey.py | |
download | manamarket-c8ae45d091f8a97c5a94d1d8032721984dff94c4.tar.gz manamarket-c8ae45d091f8a97c5a94d1d8032721984dff94c4.tar.bz2 manamarket-c8ae45d091f8a97c5a94d1d8032721984dff94c4.tar.xz manamarket-c8ae45d091f8a97c5a94d1d8032721984dff94c4.zip |
Making ManaMarket Public
Diffstat (limited to 'tradey.py')
-rw-r--r-- | tradey.py | 122 |
1 files changed, 122 insertions, 0 deletions
diff --git a/tradey.py b/tradey.py new file mode 100644 index 0000000..01f855e --- /dev/null +++ b/tradey.py @@ -0,0 +1,122 @@ +#!/usr/bin/python +""" + Copyright 2011, Dipesh Amin <yaypunkrock@gmail.com> + Copyright 2011, Stefan Beller <stefanbeller@googlemail.com> + + This file is part of tradey, a trading bot in the mana world + see www.themanaworld.org +""" +import time +import os +import xml.dom.minidom +from subprocess import call +from xml.etree.ElementTree import * + +def clean_xml(parse): + data = '' + pos_start = 0 + while parse.find('<', pos_start) != -1: + pos_start = parse.find('<', pos_start) + pos_end = parse.find('>', pos_start+1) + data += parse[pos_start:pos_end+1] + pos_start = pos_end + return data + +class UserTree: + def __init__(self): + self.tree = ElementTree(file="data/user.xml") + self.root = self.tree.getroot() + + def add_user(self, name, stalls, al): + if self.get_user(name) == -10: + user = SubElement(self.root, "user") + user.set("name", name) + user.set("stalls", str(stalls)) + user.set("used_stalls", str(0)) + user.set("money", str(0)) + user.set("id", str(0)) + user.set("accesslevel", str(al)) + self.save() + + def get_user(self, name): + for elem in self.root: + if elem.get("name") == name: + return elem + return -10 + + def remove_user(self, name): + for elem in self.root: + if elem.get("name") == name: + self.root.remove(elem) + self.save() + return 1 + return -10 + + def save(self): + # Be sure to call save() after any changes to the tree. + f = open('data/user.xml', 'w') + dom = xml.dom.minidom.parseString(clean_xml(tostring(self.root))) + f.write(dom.toprettyxml(' ')) + f.close() + +class ItemTree: + def __init__(self): + self.tree = ElementTree(file="data/sale.xml") + self.root = self.tree.getroot() + self.u_id = set() + + for elem in self.root: + self.u_id.add(int(elem.get("uid"))) + + def getId(self): + id_itter = 1 + while id_itter in self.u_id: + id_itter += 1 + self.u_id.add(id_itter) + return id_itter + + def remove_id(self, uid): + # Free up used id's. + self.u_id.remove(uid) + + def add_item(self, name, item_id, amount, price): + user = SubElement(self.root, "item") + user.set("name", name) + user.set("itemId", str(item_id)) + user.set("price", str(price)) + user.set("add_time", str(time.time())) + user.set("relisted", str(0)) + user.set("amount", str(amount)) + user.set("uid", str(self.getId())) + self.save() + + def get_uid(self, uid): + for elem in self.root: + if elem.get("uid") == str(uid): + return elem + return -10 + + def remove_item_uid(self, uid): + for elem in self.root: + if elem.get("uid") == str(uid): + self.root.remove(elem) + self.remove_id(uid) + self.save() + return 1 + return -10 + + def save(self): + # Be sure to call save() after any changes to the tree. + f = open('data/sale.xml', 'w') + dom = xml.dom.minidom.parseString(clean_xml(tostring(self.root))) + f.write(dom.toprettyxml(' ')) + f.close() + +def saveData(commitmessage = "commit"): + # This assumes the current working directory is the tradey directory. + os.chdir("data") + call(["git", "commit","-a", '-m "' + commitmessage + '"']) + os.chdir("..") + +if __name__ == '__main__': + print "Do not run this file directly. Run main.py" |