def save_ip(real_ip): if real_ip is not None: # 处理X-Forwarded-For real_ip = real_ip.split(",")[0] # 跳过内网 # A类和C类 if real_ip.startswith("10.") or real_ip.startswith("192.168") or real_ip == "127.0.0.1": return db = xtables.get_record_table() record = db.select_one(where=dict(type="ip", key=real_ip, cdate=xutils.format_date())) if record is None: db.insert(type="ip", key=real_ip, cdate=xutils.format_date(), ctime=xutils.format_datetime(), value="1") else: db.update(value=int(record.value)+1, where=dict(id=record.id))
def __init__(self, path, parent=None): self.path = path self.name = os.path.basename(path) self.size = '-' self.cdate = '-' _, self.ext = os.path.splitext(path) self.ext = self.ext.lower() if parent != None: self.name = get_relative_path(path, parent) # 处理Windows盘符 if path.endswith(":"): self.name = path self.name = xutils.unquote(self.name) if os.path.isfile(path): self.type = "file" self.name = decode_name(self.name) _, self.ext = os.path.splitext(self.name) else: self.type = "dir" self.path += "/" try: st = os.stat(path) self.size = format_size(st.st_size) self.cdate = xutils.format_date(st.st_ctime) except: pass
def build_plugin_links(dirname, fnames): links = [] for fname in fnames: fpath = os.path.join(dirname, fname) if not os.path.exists(fpath): continue name, ext = os.path.splitext(fname) name = xutils.unquote(name) item = link(name, "/plugins/" + name) item.editable = True # st = os.stat(fpath) # item.atime = xutils.format_date(st.st_atime) atime = cacheutil.zscore("plugins.history", fname) if atime: item.atime = xutils.format_date(atime) else: item.atime = "" item.edit_link = "/code/edit?path=" + fpath plugin_context = xconfig.PLUGINS.get(fname) item.title = '' if plugin_context is not None: item.title = plugin_context.title item.category = plugin_context.category else: item.title = name links.append(item) return links
def handle_file_stat(self, merge): path = self.path try: st = os.stat(path) self.cdate = xutils.format_date(st.st_ctime) except: st = Storage() self.name = xutils.unquote(self.name) if os.path.isfile(path): self.type = "file" self.name = decode_name(self.name) _, self.ext = os.path.splitext(self.name) self.size = format_size(st.st_size) else: children = try_listdir(path) self.type = "dir" self.path = fixed_dir_path(self.path) if children != None: self.size = len(children) else: self.size = "ERR" if merge and self.size == 1: new_path = os.path.join(path, children[0]) if not os.path.isdir(new_path): return if parent is None: parent = os.path.dirname(path) self.__init__(new_path, parent)
def POST(self): coords = xutils.get_argument("coords") if coords != "null": db = xtables.get_record_table() db.insert(type="location", key=xauth.get_current_name(), cdate=xutils.format_date(), ctime=xutils.format_datetime(), value=coords) return "{}"
def save_login_info(name, value): db = xtables.get_record_table() message = "%s-%s" % (get_real_ip(), value) if name != "": db.insert(type="login", key=name, value=message, ctime = xutils.format_datetime(), cdate = xutils.format_date())
def save_login_info(name, value): message = "%s-%s" % (get_real_ip(), value) if name != "": dbutil.insert( "record:login", dict(type="login", key=name, value=message, ctime=xutils.format_datetime(), cdate=xutils.format_date()))
def GET(self): city_code = xutils.get_argument("city_code", "101020100") city_name = xutils.get_argument("city_name", "上海") city_name = xutils.u(city_name) message = None db = xtables.get_record_table() record = db.select_one(where="type='weather' AND DATE(ctime)=$date_str AND key=$key", vars=dict(date_str=xutils.format_date(), key=city_name)) if record is not None: message = record.value else: url = "http://www.weather.com.cn/weather1d/%s.shtml" % city_code html = six.moves.urllib.request.urlopen(url).read() if html == b"<!-- empty -->": return dict(code="fail", message=u("city_code错误")) soup = BeautifulSoup(html, "html.parser") elements = soup.find_all(id="hidden_title") # print(elements) # print(len(html)) # return html if len(elements) > 0: weather = elements[0] message = weather.attrs["value"] message = message.replace("/", u("至")) db.insert(ctime=xutils.format_datetime(), cdate=xutils.format_date(), type="weather", key=city_name, value=message ) if message is not None: message = u(message) if not xconfig.is_mute(): xutils.say("%s %s" % (city_name, message)) # six.print_(type(message), message) return dict(code="success", data=message) else: return dict(code="fail", message="结果为空")
def __init__(self, path, parent=None, merge=False): self.path = path self.name = os.path.basename(path) self.size = '-' self.cdate = '-' _, self.ext = os.path.splitext(path) self.ext = self.ext.lower() if parent != None: self.name = get_relative_path(path, parent) # 处理Windows盘符 if path.endswith(":"): self.name = path try: st = os.stat(path) self.cdate = xutils.format_date(st.st_ctime) except: st = Storage() self.name = xutils.unquote(self.name) if os.path.isfile(path): self.type = "file" self.name = decode_name(self.name) _, self.ext = os.path.splitext(self.name) self.size = format_size(st.st_size) else: children = try_listdir(path) self.type = "dir" self.path += "/" if children != None: self.size = len(children) else: self.size = "ERR" if merge and self.size == 1: new_path = os.path.join(path, children[0]) if not os.path.isdir(new_path): return if parent is None: parent = os.path.dirname(path) self.__init__(new_path, parent)
def build_plugin_links(plugins): links = [] for plugin in plugins: fname = plugin.fname fpath = plugin.fpath item = link(plugin.title, plugin.url) item.editable = True atime = cacheutil.zscore("plugins.history", plugin.name) if atime: item.atime = xutils.format_date(atime) else: item.atime = "" item.edit_link = "/code/edit?path=" + fpath item.title = plugin.title links.append(item) return links
def list_plugins(): dirname = xconfig.PLUGINS_DIR if not os.path.isdir(dirname): return [] links = [] recent_names = cacheutil.zrange("plugins.history", -50, -1) recent_names.reverse() recent_names = [x + ".py" for x in recent_names] plugins_list = os.listdir(dirname) plugins_list = set(plugins_list) - set(recent_names) for name in recent_names + sorted(plugins_list): fpath = os.path.join(dirname, name) if not os.path.exists(fpath): continue name, ext = os.path.splitext(name) name = xutils.unquote(name) st = os.stat(fpath) item = link(name, "/plugins/" + name) item.atime = xutils.format_date(st.st_atime) item.edit_link = "/code/edit?path=" + fpath links.append(item) return links