コード例 #1
0
ファイル: stats.py プロジェクト: zz-fork-repository/xnote
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))
コード例 #2
0
ファイル: fsutil.py プロジェクト: arong-me/xnote
    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
コード例 #3
0
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
コード例 #4
0
    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)
コード例 #5
0
ファイル: stats.py プロジェクト: zz-fork-repository/xnote
 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 "{}"
コード例 #6
0
ファイル: login.py プロジェクト: burushi/xnote
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())
コード例 #7
0
ファイル: login.py プロジェクト: gotonking/miniNote
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()))
コード例 #8
0
    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="结果为空")
コード例 #9
0
    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)
コード例 #10
0
ファイル: plugins.py プロジェクト: Kevin-CodeHub/xnote
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
コード例 #11
0
ファイル: system.py プロジェクト: black0592/xnote
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