尝试从在线 Nitro 客户端(在 Ubuntu One 上)同步我的任务后,我的本地客户端停止工作(程序运行时空白窗口在“加载...”处冻结)。
我正在尝试访问任务列表文件以恢复我的所有任务,以便我可以重新安装该应用程序。它们应该位于 /home/.nitro 目录中,但没有这样的文件夹...
有人能帮我找到这些文件/数据库吗?我在那里有很多任务,我不想失去它们……
PS 我尝试从终端运行 Nitro 时遇到的错误是:
/usr/lib/python2.7/dist-packages/gi/overrides/Gtk.py:391: Warning: g_object_set_property: construct property "type" for object `Window' can't be set after construction
Gtk.Window.__init__(self, type=type, **kwds)
/usr/lib/python2.7/dist-packages/gi/overrides/Gtk.py:391: Warning: g_object_set_property: construct property "type" for object `NitrotasksWindow' can't be set after construction
Gtk.Window.__init__(self, type=type, **kwds)
** Message: console message: undefined @0: SyntaxError: JSON Parse error: Unexpected identifier "undefined"
** Message: console message: undefined @0: TypeError: 'undefined' is not an object
虽然我的问题与修复错误无关,但我们仍感谢任何帮助!
答案1
它存储在 ~/.local/webkit/databases/file__0.localstorage 中。修复此问题的最简单方法是删除该文件并从 Ubuntu One 重新同步。
答案2
看起来 Nitro 是建立在以下网络技术之上的Javascript 和 CSS. 在检查文件时
/opt/nitro/share/pyshared/nitrotasks
NitroTasksWindow.py它导入了 web 浏览器、pickle 模块,因此数据可能以 pkl 格式存储,或者可能以 cookie 形式存储,似乎只能通过 Nitro App 访问。不过我不太确定。
我的直觉来自于该 Python 文件中的以下几行
42 号线storage_file = open(home + '/.nitrodata.pkl', 'r')
43 行localstorage = pickle.load(storage_file)
第 47 行localstorage = {'tasks': '(null)', 'lists': '(null)', 'prefs': '(null)'}
实际上是一种字典类型。
第 139 至 143 行是如何从磁盘检索数据的,正如第 139 行本身的注释所说。
#Gets Data from Disk
if title[0] == 'get':
scriptbody = localstorage[title[1]]
script = "xcode = '" + scriptbody + "'"
self.webview.execute_script(script)
我不太擅长处理 URL,所以如果您能够通过检查它的作用来构造 URL 并将其传递给任何浏览器,然后检查元素,您就可以从它的作用中获取它,或者获取原始数据。