Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

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

Open
Tback1 opened this issue Sep 12, 2019 · 12 comments
Projects

Comments

@Tback1
Copy link

Tback1 commented Sep 12, 2019

现象为在前端 打开网页只显示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为空时,前端页面显示无内容,让人误以为后台无工作

@muxueqz
Copy link
Owner

muxueqz commented Sep 13, 2019

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

@muxueqz
Copy link
Owner

muxueqz commented Sep 13, 2019

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

@Tback1
Copy link
Author

Tback1 commented Sep 14, 2019

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

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

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

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

snipaste 2019-09-142133

@muxueqz
Copy link
Owner

muxueqz commented Sep 15, 2019

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

@muxueqz
Copy link
Owner

muxueqz commented Sep 15, 2019

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

@Tback1
Copy link
Author

Tback1 commented Sep 16, 2019

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

image

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

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

@muxueqz
Copy link
Owner

muxueqz commented Sep 17, 2019

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

image

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

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

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

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

@Tback1
Copy link
Author

Tback1 commented Sep 17, 2019

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

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

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

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

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

@muxueqz
Copy link
Owner

muxueqz commented Sep 17, 2019

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

@Tback1
Copy link
Author

Tback1 commented Sep 17, 2019

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

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

@muxueqz
Copy link
Owner

muxueqz commented Sep 18, 2019

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

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

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

@Tback1
Copy link
Author

Tback1 commented Sep 18, 2019

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

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

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

@muxueqz muxueqz added this to To do in 2.0 May 13, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
2.0
To do
Development

No branches or pull requests

2 participants