Lion4ever

Shop List Filter

Oct 3rd, 2013
135
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 3.46 KB | None | 0 0
  1. from pymclevel import MCSchematic
  2. from pymclevel import TileEntity
  3. from pymclevel import TAG_Compound
  4. from pymclevel import TAG_Short
  5. from pymclevel import TAG_Byte
  6. from pymclevel import TAG_String
  7. from numpy import zeros, array
  8. from operator import itemgetter
  9. import re
  10.  
  11. def perform(level, box, options):
  12.    
  13.     verkauf = []
  14.     einkauf = []
  15.    
  16.     minx = int(box.minx/16)*16
  17.     minz = int(box.minz/16)*16
  18.    
  19.     for x in xrange(minx, box.maxx, 16):
  20.         for z in xrange(minz, box.maxz, 16):
  21.             chunk = level.getChunk(x / 16, z / 16)
  22.             for te in chunk.TileEntities:
  23.                 if te["id"].value == "Sign":
  24.                     #try:
  25.                         prices = [int(s) for s in te["Text3"].value.replace(':',' ').replace('B',' ').replace('S',' ').replace(';',' ').replace(',',' ').split() if s.isdigit()]
  26.                         if (te["Text2"].value.isdigit()) and (len(te["Text4"].value)>0) and (len(te["Text1"].value)>0) and (len(prices)>0):
  27.                             if ("B" in te["Text3"].value) and ("S" in te["Text3"].value) and (len(prices)==2):
  28.                                 if te["Text3"].value.find("B") < te["Text3"].value.find("S"):
  29.                                     verkauf.append([te["Text4"].value,te["Text1"].value,te["Text2"].value,prices[1],prices[1]/float(te["Text2"].value),te["x"].value,te["y"].value,te["z"].value])
  30.                                     einkauf.append([te["Text4"].value,te["Text1"].value,te["Text2"].value,prices[0],prices[0]/float(te["Text2"].value),te["x"].value,te["y"].value,te["z"].value])
  31.                                 else:
  32.                                     verkauf.append([te["Text4"].value,te["Text1"].value,te["Text2"].value,prices[0],prices[0]/float(te["Text2"].value),te["x"].value,te["y"].value,te["z"].value])
  33.                                     einkauf.append([te["Text4"].value,te["Text1"].value,te["Text2"].value,prices[1],prices[1]/float(te["Text2"].value),te["x"].value,te["y"].value,te["z"].value])
  34.                                 continue
  35.                             if ("B" in te["Text3"].value):
  36.                                 einkauf.append([te["Text4"].value,te["Text1"].value,te["Text2"].value,prices[0],prices[0]/float(te["Text2"].value),te["x"].value,te["y"].value,te["z"].value])
  37.                             if ("S" in te["Text3"].value):
  38.                                 verkauf.append([te["Text4"].value,te["Text1"].value,te["Text2"].value,prices[0],prices[0]/float(te["Text2"].value),te["x"].value,te["y"].value,te["z"].value])
  39.                     #except:
  40.                     #   print("Skipping sign at %d %d %d" % (te["x"].value,te["y"].value,te["z"].value))
  41.     verkauf.sort(key=itemgetter(4),reverse=True)
  42.     verkauf.sort(key=itemgetter(0))
  43.     einkauf.sort(key=itemgetter(4))
  44.     einkauf.sort(key=itemgetter(0))
  45.     itemAlt = ""
  46.     nutzerAlt = ""
  47.     f = open('workfileShops.html', 'w')
  48.     f.write("<h1>Einkauf</h1><table><tr><th>Item</th><th>Nutzer</th><th>Anzahl</th><th>Preis</th><th>Preis pro Item</th><th>Position</th></tr>")
  49.     for item, nutzer, anzahl, preis, ratio, x, y, z in einkauf:
  50.         f.write("<tr><td>{:s}</td><td>{:s}</td><td>{:s}</td><td>{:d}</td><td>{:.2f}</td><td>{:d}, {:d}, {:d}</td></tr>".format(item if itemAlt != item else "",nutzer if nutzerAlt != nutzer else "",anzahl,preis,ratio,x,y,z))
  51.         itemAlt = item
  52.         nutzerAlt = nutzer
  53.     f.write("</table>")
  54.    
  55.     f.write("<h1>Verkauf</h1><table><tr><th>Item</th><th>Nutzer</th><th>Anzahl</th><th>Preis</th><th>Preis pro Item</th><th>Position</th></tr>")
  56.     for item, nutzer, anzahl, preis, ratio, x, y, z in verkauf:
  57.         f.write("<tr><td>{:s}</td><td>{:s}</td><td>{:s}</td><td>{:d}</td><td>{:.2f}</td><td>{:d}, {:d}, {:d}</td></tr>".format(item if itemAlt != item else "",nutzer if nutzerAlt != nutzer else "",anzahl,preis,ratio,x,y,z))
  58.         itemAlt = item
  59.         nutzerAlt = nutzer
  60.     f.write("</table>")
  61.     f.close()
  62.     print("done. File saved as workfileShops.html")
Advertisement
Add Comment
Please, Sign In to add comment