skybook icon indicating copy to clipboard operation
skybook copied to clipboard

1.03编译后过程有警告,能正常运行,但对db文件操作有问题

Open Tback1 opened this issue 4 years ago • 12 comments

现象为在前端 打开网页只显示bookmark几个大字,

后端日志 此时db数据库为新生成的0字节文件

D:\Program Files\skybook\src>skybook.exe
INFO Jester is making jokes at http://127.0.0.1:5000
DEBUG GET /
DEBUG   200 OK {"content-type": @["text/html;charset=utf-8"]}
DEBUG GET /favicon.ico
DEBUG   404 Not Found {"content-type": @["text/html;charset=utf-8"]}
DEBUG GET /
DEBUG   200 OK {"content-type": @["text/html;charset=utf-8"]}
DEBUG GET /
DEBUG   200 OK {"content-type": @["text/html;charset=utf-8"]}
DEBUG GET /
DEBUG   200 OK {"content-type": @["text/html;charset=utf-8"]}
DEBUG GET /
DEBUG   200 OK {"content-type": @["text/html;charset=utf-8"]}
DEBUG GET /favicon.ico
DEBUG   404 Not Found {"content-type": @["text/html;charset=utf-8"]}
DEBUG GET /
DEBUG   200 OK {"content-type": @["text/html;charset=utf-8"]}
Traceback (most recent call last)
D:\Program Files\skybook\src\skybook.nim(179) skybook
C:\Program Protable\nim-0.20.2\lib\jester\jester.nim(499) serve
C:\Program Protable\nim-0.20.2\lib\pure\asyncdispatch.nim(1863) runForever
C:\Program Protable\nim-0.20.2\lib\pure\asyncdispatch.nim(1562) poll
C:\Program Protable\nim-0.20.2\lib\pure\asyncdispatch.nim(334) runOnce
SIGINT: Interrupted by Ctrl-C.

尝试用之前版本的bookmark.db文件覆盖空白db后,运行出错提示如下

D:\Program Files\skybook\src>skybook.exe
D:\Program Files\skybook\src\skybook.nim(70) skybook
C:\Program Protable\nim-0.20.2\lib\pure\json.nim(854) parseJson
C:\Program Protable\nim-0.20.2\lib\pure\json.nim(847) parseJson
C:\Program Protable\nim-0.20.2\lib\pure\parsejson.nim(526) eat
C:\Program Protable\nim-0.20.2\lib\pure\parsejson.nim(522) raiseParseErr
Error: unhandled exception: input(1, 511) Error: EOF expected [JsonParsingError]

尝试删除db让skybook再次自动生成

D:\Program Files\skybook\src>skybook.exe
C:\Program Protable\nim-0.20.2\lib\system\io.nim(667) skybook
C:\Program Protable\nim-0.20.2\lib\system\io.nim(266) readLine
C:\Program Protable\nim-0.20.2\lib\system\io.nim(135) checkErr
C:\Program Protable\nim-0.20.2\lib\system\io.nim(119) raiseEIO
Error: unhandled exception: errno: 2 `No such file or directory` [IOError]

最后想起来添加了一个书签进去,显示终于正常了。

生成报错日志

D:\Program Files\skybook\src>nim c skybook.nim
Hint: used config file 'C:\Program Protable\nim-0.20.2\config\nim.cfg' [Conf]
Hint: system [Processing]
Hint: widestrs [Processing]
Hint: io [Processing]
Hint: skybook [Processing]
Hint: tables [Processing]
Hint: hashes [Processing]
Hint: strutils [Processing]
Hint: parseutils [Processing]
Hint: math [Processing]
Hint: bitops [Processing]
Hint: macros [Processing]
Hint: algorithm [Processing]
Hint: unicode [Processing]
Hint: htmlgen [Processing]
Hint: jester [Processing]
Hint: net [Processing]
Hint: nativesockets [Processing]
Hint: os [Processing]
Hint: pathnorm [Processing]
Hint: osseps [Processing]
Hint: winlean [Processing]
Hint: dynlib [Processing]
Hint: times [Processing]
Hint: options [Processing]
Hint: typetraits [Processing]
Hint: time_t [Processing]
Hint: sets [Processing]
Hint: strtabs [Processing]
Hint: re [Processing]
Hint: pcre [Processing]
Hint: rtarrays [Processing]
Hint: uri [Processing]
Hint: mimetypes [Processing]
Hint: asyncnet [Processing]
Hint: asyncdispatch [Processing]
Hint: heapqueue [Processing]
Hint: lists [Processing]
Hint: asyncstreams [Processing]
Hint: asyncfutures [Processing]
Hint: deques [Processing]
Hint: cstrutils [Processing]
Hint: md5 [Processing]
Hint: logging [Processing]
Hint: httpcore [Processing]
Hint: asyncfile [Processing]
Hint: macrocache [Processing]
Hint: json [Processing]
Hint: lexbase [Processing]
Hint: streams [Processing]
Hint: parsejson [Processing]
Hint: strformat [Processing]
Hint: errorpages [Processing]
Hint: utils [Processing]
Hint: cgi [Processing]
Hint: cookies [Processing]
Hint: request [Processing]
Hint: asynchttpserver [Processing]
Hint: patterns [Processing]
C:\Program Protable\nim-0.20.2\lib\jester\jester.nim(1277, 9) Hint: Asynchronous route: match. [User]
D:\Program Files\skybook\src\skybook.nim(179, 1) template/generic instantiation of `routes` from here
C:\Program Protable\nim-0.20.2\lib\jester\jester.nim(1283, 35) template/generic instantiation of `async` from here
C:\Program Protable\nim-0.20.2\lib\pure\asyncmacro.nim(271, 31) Warning: 'matchIter' is not GC-safe as it accesses 'bookmarks_table' which is a global using GC'ed memory [GcUnsafe2]
CC: stdlib_assertions.nim
CC: stdlib_dollars.nim
CC: stdlib_widestrs.nim
CC: stdlib_io.nim
CC: stdlib_system.nim
CC: stdlib_parseutils.nim
CC: stdlib_math.nim
CC: stdlib_unicode.nim
CC: stdlib_strutils.nim
CC: stdlib_hashes.nim
CC: stdlib_tables.nim
CC: stdlib_pathnorm.nim
CC: stdlib_dynlib.nim
CC: stdlib_winlean.nim
CC: stdlib_options.nim
CC: stdlib_times.nim
CC: stdlib_os.nim
CC: stdlib_nativesockets.nim
CC: stdlib_sets.nim
CC: stdlib_net.nim
CC: stdlib_strtabs.nim
CC: stdlib_uri.nim
CC: stdlib_mimetypes.nim
CC: stdlib_heapqueue.nim
CC: stdlib_deques.nim
CC: stdlib_cstrutils.nim
CC: stdlib_asyncfutures.nim
CC: stdlib_asyncstreams.nim
CC: stdlib_asyncdispatch.nim
CC: stdlib_asyncnet.nim
CC: stdlib_md5.nim
CC: stdlib_logging.nim
CC: stdlib_httpcore.nim
CC: stdlib_asyncfile.nim
CC: stdlib_streams.nim
CC: stdlib_lexbase.nim
CC: stdlib_parsejson.nim
CC: stdlib_json.nim
CC: ../../../../C:/Program Protable/nim-0.20.2/lib/jester/jester/private/errorpages.nim
CC: stdlib_cgi.nim
CC: ../../../../C:/Program Protable/nim-0.20.2/lib/jester/jester/private/utils.nim
CC: stdlib_asynchttpserver.nim
CC: ../../../../C:/Program Protable/nim-0.20.2/lib/jester/jester/request.nim
CC: ../../../../C:/Program Protable/nim-0.20.2/lib/jester/jester/patterns.nim
CC: ../../../../C:/Program Protable/nim-0.20.2/lib/jester/jester.nim
CC: skybook.nim
Hint:  [Link]
Hint: operation successful (92829 lines compiled; 3.543 sec total; 111.203MiB peakmem; Debug Build) [SuccessX]

总结 1、不兼容旧版本db 2、新db为空时,前端页面显示无内容,让人误以为后台无工作

Tback1 avatar Sep 12 '19 14:09 Tback1

@Tback1 奇怪了,我一直用的是一个db,看报错应该是因为你的旧db不是合法的json,是不是内容被其它程序修改过呢? 第二点确实是一个可以优化的用户体验

muxueqz avatar Sep 13 '19 04:09 muxueqz

@Tback1 方便的话,可不可以把你的旧db文件发过来看看呢?也许有可能是书签中的特殊字符造成的

muxueqz avatar Sep 13 '19 06:09 muxueqz

@Tback1 方便的话,可不可以把你的旧db文件发过来看看呢?也许有可能是书签中的特殊字符造成的

抱歉,我已经删除了旧DB库,不过不是大问题,确实之前的版本是用VS和notepad++轮番蹂躏过,因为没有删除功能,用于“删除”json条目达到删除收藏的功能。就此推断应该是编码或者结尾EOF的问题。

另外新版的edit 和 delete的css文件可以考虑调整一下,大大的标签粘连在一起。 如果新建项目没有打tag的,又会错位。

可以做的淡一些,模仿一个本地Pinboard样式?

snipaste 2019-09-142133

Tback1 avatar Sep 14 '19 13:09 Tback1

@Tback1 可以呀,刚刚看了一下,Pinboard也好难看啊。。。虽然我现在的样式也很难看,我找找有没有可“借鉴”的

muxueqz avatar Sep 15 '19 06:09 muxueqz

@Tback1 现在改成这样,你觉得怎么样? image

muxueqz avatar Sep 15 '19 09:09 muxueqz

@Tback1 现在改成这样,你觉得怎么样? image

image

我觉得pinboard 那样在标签下弄个时间和 delete edit两个字符做操作项 淡一点,不要设计 就是最好的设计~~笑~ 实在要弄图标,看看这两天VSCODE不是开源了图标库么? 字符直接考虑个位置就行,图标还得考虑大小缩放合不合适,操心啊~

另外,能不能考虑一下批量操作标签打tag,有时候比如都是python的一组网页,先直接添加进来,在批量打一下tag比较方便。

Tback1 avatar Sep 16 '19 18:09 Tback1

@Tback1 现在改成这样,你觉得怎么样? image

image

我觉得pinboard 那样在标签下弄个时间和 delete edit两个字符做操作项 淡一点,不要设计 就是最好的设计~~笑~ 实在要弄图标,看看这两天VSCODE不是开源了图标库么? 字符直接考虑个位置就行,图标还得考虑大小缩放合不合适,操心啊~

另外,能不能考虑一下批量操作标签打tag,有时候比如都是python的一组网页,先直接添加进来,在批量打一下tag比较方便。

嗯,pinboard这样的设计,我们右侧没有tag cloud就比较难看了,时间倒是可以考虑加上,其实以前是有的,后来砍掉了

哈,在页面上批量操作,这可真考验我的前端能力了,不过确实可以考虑后续加上,顺便把Delete从现在的新页面改成弹出确认窗口的方式,批量操作和弹出确认窗口都需要引入JS实现

muxueqz avatar Sep 17 '19 01:09 muxueqz

@Tback1 现在改成这样,你觉得怎么样? image

image 我觉得pinboard 那样在标签下弄个时间和 delete edit两个字符做操作项 淡一点,不要设计 就是最好的设计~~笑~ 实在要弄图标,看看这两天VSCODE不是开源了图标库么? 字符直接考虑个位置就行,图标还得考虑大小缩放合不合适,操心啊~ 另外,能不能考虑一下批量操作标签打tag,有时候比如都是python的一组网页,先直接添加进来,在批量打一下tag比较方便。

嗯,pinboard这样的设计,我们右侧没有tag cloud就比较难看了,时间倒是可以考虑加上,其实以前是有的,后来砍掉了

哈,在页面上批量操作,这可真考验我的前端能力了,不过确实可以考虑后续加上,顺便把Delete从现在的新页面改成弹出确认窗口的方式,批量操作和弹出确认窗口都需要引入JS实现

的确没 tag cloud 占用长度 长文字和网页链接 看上去就非常费眼了~留白又让重量不平衡。 感谢上现在就是因为左侧字符长度不固定,看上去就显得凌乱 image 收缩一下字符长度应该就能解决这个问题。右边实在没得放,先留着以后放点其它功能呗。

Tback1 avatar Sep 17 '19 04:09 Tback1

@Tback1 现在是这样的: image 你看看是不是好一些?

muxueqz avatar Sep 17 '19 07:09 muxueqz

我觉得可以将下边获取的网页介绍部分的高度都统一一下,3行以内看你的喜好为好,这样会不会好一些?

我这么建议的原因是:从你的最新截图上,看上去多的挺多,少的挺少,虽然加了表格外框限定,但是总是容易让人觉得视觉疲劳,不如固定高度给人的视觉预期明确,容易直接区分标题,简介,tag。

Tback1 avatar Sep 17 '19 12:09 Tback1

我觉得可以将下边获取的网页介绍部分的高度都统一一下,3行以内看你的喜好为好,这样会不会好一些?

我这么建议的原因是:从你的最新截图上,看上去多的挺多,少的挺少,虽然加了表格外框限定,但是总是容易让人觉得视觉疲劳,不如固定高度给人的视觉预期明确,容易直接区分标题,简介,tag。

呃,内容多是因为我需要看到这么多,如果保持一样高度,要么浪费空间,要么丢失内容,而找书签在我的理解是和搜索引擎一样,目的比较明确,找到就走

muxueqz avatar Sep 18 '19 03:09 muxueqz

我觉得可以将下边获取的网页介绍部分的高度都统一一下,3行以内看你的喜好为好,这样会不会好一些? 我这么建议的原因是:从你的最新截图上,看上去多的挺多,少的挺少,虽然加了表格外框限定,但是总是容易让人觉得视觉疲劳,不如固定高度给人的视觉预期明确,容易直接区分标题,简介,tag。

呃,内容多是因为我需要看到这么多,如果保持一样高度,要么浪费空间,要么丢失内容,而找书签在我的理解是和搜索引擎一样,目的比较明确,找到就走

有道理~这个需求比我的需求优先级更高~~笑~~ 嗯,这样想也对,看来是我还没有把它主要当做搜索而是一个首页展览来用。转变习惯后应该就不存在这方面影响了

Tback1 avatar Sep 18 '19 09:09 Tback1