def market(self, regionlimit=None, pickregion=None, empire=""): session = EVCstate() db = evec_func.db_con() t = display.template('market.tmpl', session) if regionlimit is None: regionlimit = [] if not isinstance(regionlimit, list): regionlimit = [regionlimit] regionlimit = map(int, regionlimit) if pickregion is not None: if empire: regionlimit = empireregions() session['regionlimit'] = regionlimit else: if 'regionlimit' in session: regionlimit = session['regionlimit'] else: regionlimit = [] session['regionlimit'] = [] t.regionlimit = regionlimit t.regions = evec_func.region_list(db) #t.types = evec_func.type_list(db) t.types = [] db.close() return t.respond()
def market(self, regionlimit=None, pickregion=None, empire=""): session = EVCstate() db = evec_func.db_con() t = display.template("market.tmpl", session) if regionlimit is None: regionlimit = [] if not isinstance(regionlimit, list): regionlimit = [regionlimit] regionlimit = map(int, regionlimit) if pickregion is not None: if empire: regionlimit = empireregions() session["regionlimit"] = regionlimit else: if "regionlimit" in session: regionlimit = session["regionlimit"] else: regionlimit = [] session["regionlimit"] = [] t.regionlimit = regionlimit t.regions = evec_func.region_list(db) # t.types = evec_func.type_list(db) t.types = [] db.close() return t.respond()
def quicklook(self, typeid, setorder=None, setdir=None, igbover=False, sethours=None, regionlimit=None, usesystem=None, setminQ=0, poffset=0, outtype='html', api=1.0): session = {} session = EVCstate() cherrypy.response.headers['Content-Type'] = 'text/html' db = evec_func.db_con() if regionlimit is None: regionlimit = [] if type(regionlimit) != list: regionlimit = [int(regionlimit)] else: regionlimit = [int(x) for x in regionlimit] if 'regionlimit' in session and len(regionlimit) == 0: regionlimit = session['regionlimit'] if len(regionlimit) == 0: regionlimit = empireregions() randomregion = None up_sug = None order = 'price' orderdir = 'ASC' borderdir = 'DESC' hours = 24 minQ = 0 if setminQ: minQ = int(setminQ) session['minQ'] = minQ if 'minQ' in session: minQ = session['minQ'] if setdir: if setdir == '1': orderdir = "ASC" borderdir = 'DESC' else: orderdir = "DESC" borderdir = 'ASC' session['orderdir'] = orderdir session['borderdir'] = borderdir if 'orderdir' in session: orderdir = session['orderdir'] if 'borderdir' in session: borderdir = session['borderdir'] if sethours: hours = int(sethours) session['orderhours'] = hours if 'orderhours' in session: hours = session['orderhours'] if setorder: if setorder not in [ 'volremain', 'stationname', 'regionname', 'price' ]: raise "SetOrder fail" order = setorder session['order'] = order if 'order' in session: order = session['order'] # Fetch and generate the template t = None if outtype == 'html': t = display.template('quicklook.tmpl', session) elif outtype == 'xml': t = display.template('quicklook_xml.tmpl', session) t.api = api typename = "" try: typename = evec_func.get_type_name(db, typeid) except: return "Can't find that type" typesize = evec_func.get_type_size(db, typeid) t.typename = typename t.typesize = typesize t.typeid = typeid t.sortorder = order reg_block = evec_func.build_regionquery("regions", regionlimit) sql_age = ` hours ` + " hours" sql_system = " " if usesystem: usesystem = int(usesystem) sql_system = " AND current_market.systemid = " + ` usesystem ` + " " # statistics for selling # do query here cur_buy = db.cursor() cur_sell = db.cursor() limit = "LIMIT 10000 OFFSET 0" transactions = [] t.poffset = int(poffset) # Fetch from cache or run query buys = [] sells = [] cache_key = cache.generic_key("evec_quicklook", typeid, regionlimit, usesystem, order, orderdir, borderdir, limit, minQ, hours) cache_result = cache.get(cache_key) def run_query(): cur_buy.execute( "SELECT bid,current_market.systemid,current_market.stationid,price,volremain,(issued+duration),range,regionname, (reportedtime),stationname,security,minvolume,regions.regionid,orderid FROM current_market,regions,stations,systems WHERE " + reg_block + " AND stations.systemid = systems.systemid AND typeid = %s AND stations.stationid = current_market.stationid AND current_market.regionid = regions.regionid AND now() - reportedtime <= '" + sql_age + "' AND volremain >= %s AND current_market.bid = 1 " + sql_system + " ORDER BY " + order + " " + borderdir + " " + limit, [typeid, minQ]) cur_sell.execute( "SELECT bid,current_market.systemid,current_market.stationid,price,volremain,(issued+duration),range,regionname,(reportedtime),stationname,security,regions.regionid,orderid FROM current_market,regions,stations,systems WHERE " + reg_block + " AND typeid = %s AND stations.systemid = systems.systemid AND stations.stationid = current_market.stationid AND current_market.regionid = regions.regionid AND now() - reportedtime <= '" + sql_age + "' AND volremain >= %s AND current_market.bid = 0 " + sql_system + " ORDER BY " + order + " " + orderdir + " " + limit, [typeid, minQ]) for (query, lista, isbuy) in [(cur_buy, buys, True), (cur_sell, sells, False)]: r = query.fetchone() while r: rec = {} rec['systemid'] = r[1] rec['stationid'] = r[2] price = float(r[3]) string = format_price(price) rec['price'] = string rec['price_raw'] = price rec['volremain'] = format_long(r[4]) rec['volremain_raw'] = r[4] rec['expires'] = str(r[5])[0:10] if r[0] == True: rec['range'] = r[6] else: rec['range'] = -2 rec['regionname'] = r[7] reported = DateTime.DateTimeFrom(str(r[8])) now = DateTime.gmt() hours = (now - reported).hours if hours >= 1: rec['reportedtime'] = "%d hours ago" % (hours) else: rec['reportedtime'] = "%d minutes ago" % ( now - reported).minutes rec['stationname'] = r[9] sec = r[10] ssec = str(sec)[0:3] if sec <= 0.0: ssec = "0.0" rec['security'] = ssec # Try to grab regionid from the end of the query if isbuy: if int(r[11]) > 1: rec['minvolume'] = format_long(int(r[11])) rec['minvolume_raw'] = int(r[11]) else: rec['minvolume'] = 1 rec['minvolume_raw'] = 1 rec['regionid'] = r[12] rec['orderid'] = r[13] else: rec['minvolume'] = 1 rec['minvolume_raw'] = 1 rec['regionid'] = r[11] rec['orderid'] = r[12] lista.append(rec) r = query.fetchone() # pass in info here if cache_result is None: run_query() cache.set(cache_key, (buys, sells)) else: buys = cache_result[0] sells = cache_result[1] t.regions = evec_func.region_list(db) t.upload_sug = up_sug t.upload_reg = randomregion t.regionlimit = regionlimit t.usesystem = usesystem t.hours = hours t.minQ = minQ t.buys = buys t.sells = sells t.mtransaction = transactions db.close() return t.respond()
def quicklook( self, typeid, setorder=None, setdir=None, igbover=False, sethours=None, regionlimit=None, usesystem=None, setminQ=0, poffset=0, outtype="html", api=1.0, ): session = {} session = EVCstate() cherrypy.response.headers["Content-Type"] = "text/html" db = evec_func.db_con() if regionlimit is None: regionlimit = [] if type(regionlimit) != list: regionlimit = [int(regionlimit)] else: regionlimit = [int(x) for x in regionlimit] if "regionlimit" in session and len(regionlimit) == 0: regionlimit = session["regionlimit"] if len(regionlimit) == 0: regionlimit = empireregions() randomregion = None up_sug = None order = "price" orderdir = "ASC" borderdir = "DESC" hours = 24 minQ = 0 if setminQ: minQ = int(setminQ) session["minQ"] = minQ if "minQ" in session: minQ = session["minQ"] if setdir: if setdir == "1": orderdir = "ASC" borderdir = "DESC" else: orderdir = "DESC" borderdir = "ASC" session["orderdir"] = orderdir session["borderdir"] = borderdir if "orderdir" in session: orderdir = session["orderdir"] if "borderdir" in session: borderdir = session["borderdir"] if sethours: hours = int(sethours) session["orderhours"] = hours if "orderhours" in session: hours = session["orderhours"] if setorder: if setorder not in ["volremain", "stationname", "regionname", "price"]: raise "SetOrder fail" order = setorder session["order"] = order if "order" in session: order = session["order"] # Fetch and generate the template t = None if outtype == "html": t = display.template("quicklook.tmpl", session) elif outtype == "xml": t = display.template("quicklook_xml.tmpl", session) t.api = api typename = "" try: typename = evec_func.get_type_name(db, typeid) except: return "Can't find that type" typesize = evec_func.get_type_size(db, typeid) t.typename = typename t.typesize = typesize t.typeid = typeid t.sortorder = order reg_block = evec_func.build_regionquery("regions", regionlimit) sql_age = ` hours ` + " hours" sql_system = " " if usesystem: usesystem = int(usesystem) sql_system = " AND current_market.systemid = " + ` usesystem ` + " " # statistics for selling # do query here cur_buy = db.cursor() cur_sell = db.cursor() limit = "LIMIT 10000 OFFSET 0" transactions = [] t.poffset = int(poffset) # Fetch from cache or run query buys = [] sells = [] cache_key = cache.generic_key( "evec_quicklook", typeid, regionlimit, usesystem, order, orderdir, borderdir, limit, minQ, hours ) cache_result = cache.get(cache_key) def run_query(): cur_buy.execute( "SELECT bid,current_market.systemid,current_market.stationid,price,volremain,(issued+duration),range,regionname, (reportedtime),stationname,security,minvolume,regions.regionid,orderid FROM current_market,regions,stations,systems WHERE " + reg_block + " AND stations.systemid = systems.systemid AND typeid = %s AND stations.stationid = current_market.stationid AND current_market.regionid = regions.regionid AND now() - reportedtime <= '" + sql_age + "' AND volremain >= %s AND current_market.bid = 1 " + sql_system + " ORDER BY " + order + " " + borderdir + " " + limit, [typeid, minQ], ) cur_sell.execute( "SELECT bid,current_market.systemid,current_market.stationid,price,volremain,(issued+duration),range,regionname,(reportedtime),stationname,security,regions.regionid,orderid FROM current_market,regions,stations,systems WHERE " + reg_block + " AND typeid = %s AND stations.systemid = systems.systemid AND stations.stationid = current_market.stationid AND current_market.regionid = regions.regionid AND now() - reportedtime <= '" + sql_age + "' AND volremain >= %s AND current_market.bid = 0 " + sql_system + " ORDER BY " + order + " " + orderdir + " " + limit, [typeid, minQ], ) for (query, lista, isbuy) in [(cur_buy, buys, True), (cur_sell, sells, False)]: r = query.fetchone() while r: rec = {} rec["systemid"] = r[1] rec["stationid"] = r[2] price = float(r[3]) string = format_price(price) rec["price"] = string rec["price_raw"] = price rec["volremain"] = format_long(r[4]) rec["volremain_raw"] = r[4] rec["expires"] = str(r[5])[0:10] if r[0] == True: rec["range"] = r[6] else: rec["range"] = -2 rec["regionname"] = r[7] reported = DateTime.DateTimeFrom(str(r[8])) now = DateTime.gmt() hours = (now - reported).hours if hours >= 1: rec["reportedtime"] = "%d hours ago" % (hours) else: rec["reportedtime"] = "%d minutes ago" % (now - reported).minutes rec["stationname"] = r[9] sec = r[10] ssec = str(sec)[0:3] if sec <= 0.0: ssec = "0.0" rec["security"] = ssec # Try to grab regionid from the end of the query if isbuy: if int(r[11]) > 1: rec["minvolume"] = format_long(r[11]) rec["minvolume_raw"] = int(r[11]) else: rec["minvolume"] = 1 rec["minvolume_raw"] = 1 rec["regionid"] = r[12] rec["orderid"] = r[13] else: rec["minvolume"] = 1 rec["minvolume_raw"] = 1 rec["regionid"] = r[11] rec["orderid"] = r[12] lista.append(rec) r = query.fetchone() # pass in info here if cache_result is None: run_query() cache.set(cache_key, (buys, sells)) else: buys = cache_result[0] sells = cache_result[1] t.regions = evec_func.region_list(db) t.upload_sug = up_sug t.upload_reg = randomregion t.regionlimit = regionlimit t.usesystem = usesystem t.hours = hours t.minQ = minQ t.buys = buys t.sells = sells t.mtransaction = transactions db.close() return t.respond()
def quicklook(self, typeid, setorder=None, setdir = None, igbover = False, sethours = None, regionlimit = None, usesystem = None, setminQ = 0, poffset = 0, outtype = 'html', api = 1.0): session = {} session = EVCstate() cherrypy.response.headers['Content-Type'] = 'text/html' db = evec_func.db_con() if regionlimit is None: regionlimit = [] if type(regionlimit) != list: regionlimit = [int(regionlimit)] else: regionlimit = [int(x) for x in regionlimit] if 'regionlimit' in session and len(regionlimit) == 0: regionlimit = session['regionlimit'] if len(regionlimit) == 0: regionlimit = empireregions() randomregion = None up_sug = None #if len(regionlimit) == 0: # pass #elif random.randint(1,50) > 10: # random.shuffle(regionlimit) # randomregion = regionlimit[0] # up_sug = upload_suggest(db, randomregion, rettype = "both") order = 'price' orderdir = 'ASC' borderdir = 'DESC' hours = 24 minQ = 0 if setminQ: minQ = int(setminQ) session['minQ'] = minQ if 'minQ' in session: minQ = session['minQ'] if setdir: if setdir == '1': orderdir = "ASC" borderdir = 'DESC' else: orderdir = "DESC" borderdir = 'ASC' session['orderdir'] = orderdir session['borderdir'] = borderdir if 'orderdir' in session: orderdir = session['orderdir'] if 'borderdir' in session: borderdir = session['borderdir'] if sethours: hours = int(sethours) session['orderhours'] = hours if 'orderhours' in session: hours = session['orderhours'] if setorder: if setorder not in ['volremain', 'stationname', 'regionname', 'price']: raise "SetOrder fail" order = setorder session['order'] = order if 'order' in session: order = session['order'] # Fetch and generate the template t = None if outtype == 'html': t = display.template('quicklook.tmpl', session) elif outtype == 'xml': t = display.template('quicklook_xml.tmpl', session) t.api = api typename = "" try: typename = evec_func.get_type_name(db, typeid) except: return "Can't find that type" typesize = evec_func.get_type_size(db, typeid) t.typename = typename t.typesize = typesize t.typeid = typeid t.sortorder = order reg_block = evec_func.build_regionquery("regions", regionlimit) sql_age = `hours`+" hours" sql_system = " " if usesystem: usesystem = int(usesystem) sql_system = " AND current_market.systemid = " + `usesystem` + " " # statistics for selling # do query here cur_buy = db.cursor() cur_sell = db.cursor() limit = "LIMIT 10000 OFFSET 0" transactions = [] t.poffset = int(poffset) # Fetch from cache or run query buys = [] sells = [] cache_key = cache.generic_key("evec_quicklook", typeid, regionlimit, usesystem, order, orderdir, borderdir, limit, minQ, hours) cache_result = cache.get(cache_key) def run_query(): cur_buy.execute("SELECT bid,current_market.systemid,current_market.stationid,price,volremain,(issued+duration),range,regionname, (reportedtime),stationname,security,minvolume,regions.regionid,orderid FROM current_market,regions,stations,systems WHERE " + reg_block + " AND stations.systemid = systems.systemid AND typeid = %s AND stations.stationid = current_market.stationid AND current_market.regionid = regions.regionid AND now() - reportedtime <= '"+sql_age+"' AND volremain >= %s AND current_market.bid = 1 " + sql_system + " ORDER BY " + order + " " + borderdir + " " + limit, [typeid,minQ]) cur_sell.execute("SELECT bid,current_market.systemid,current_market.stationid,price,volremain,(issued+duration),range,regionname,(reportedtime),stationname,security,regions.regionid,orderid FROM current_market,regions,stations,systems WHERE " + reg_block + " AND typeid = %s AND stations.systemid = systems.systemid AND stations.stationid = current_market.stationid AND current_market.regionid = regions.regionid AND now() - reportedtime <= '"+sql_age+"' AND volremain >= %s AND current_market.bid = 0 " + sql_system + " ORDER BY " + order + " " + orderdir + " " + limit, [typeid,minQ]) for (query,lista,isbuy) in [(cur_buy, buys, True), (cur_sell, sells, False)]: r = query.fetchone() while r: rec = {} rec['systemid'] = r[1] rec['stationid'] = r[2] price = float(r[3]) string = format_price(price) rec['price'] = string rec['price_raw'] = price rec['volremain'] = format_long(r[4]) rec['volremain_raw'] = r[4] rec['expires'] = str(r[5])[0:10] if r[0] == True: rec['range'] = r[6] else: rec['range'] = -2 rec['regionname'] = r[7] rt = str(r[8]) if '.' in rt: rec['reportedtime'] = rt[5:-7] else: rec['reportedtime'] = rt[5:] rec['stationname'] = r[9] sec = r[10] ssec = str(sec)[0:3] if sec <= 0.0: ssec = "0.0" rec['security'] = ssec # Try to grab regionid from the end of the query if isbuy: if int(r[11]) > 1: rec['minvolume'] = format_long(int(r[11])) rec['minvolume_raw'] = int(r[11]) else: rec['minvolume'] = 1 rec['minvolume_raw'] = 1 rec['regionid'] = r[12] rec['orderid'] = r[13] else: rec['minvolume'] = 1 rec['minvolume_raw'] = 1 rec['regionid'] = r[11] rec['orderid'] = r[12] lista.append(rec) r = query.fetchone() # pass in info here if cache_result is None: run_query() cache.set(cache_key, (buys,sells)) else: buys = cache_result[0] sells = cache_result[1] t.regions = evec_func.region_list(db) t.upload_sug = up_sug t.upload_reg = randomregion t.regionlimit = regionlimit t.usesystem = usesystem t.hours = hours t.minQ = minQ t.buys = buys t.sells = sells t.mtransaction = transactions db.close() return t.respond()