我编写了一个守护程序,用于从 Gourmet Recipe Manager 的数据库(即 GNU/Linux 的食谱管理器)中搜索食谱
我的程序通过一个循环从 sqlite 数据库中读取每个配方元素所需的信息。
(这样的 Ubuntu Linux 守护进程称为“范围”。
这样的范围为 ubuntu unity 提供了更多搜索资源。)
'model' 包含通过 DBUS 传送到 Ubuntu Unity 的信息。
理论上,您可以使用 URI 作为 'model' 中图像的来源,
但开发人员在 IRC 中说我无法使用数据 URI。
我也对此进行了测试,但对我来说它不起作用。
所以我在 /tmp 中缓存(d)图像。
现在您可以查看所有食谱,并根据标题搜索特定的食谱,但图像关联完全是错误的。如果您搜索 2.th ,则会显示 2.th 的配方,但会在 sqlite 表中显示第一个配方的图像。
这里有两张图片,用来理解问题:
2.th recipe 获取第一个 recipe 的图片
我已经在一些 IRC 房间寻求帮助,但没有人能帮助我......
我认为您必须以某种方式保存每个图像的状态。
如果您有一个不需要缓存图像的解决方案,我会很高兴。
完整的源文件可以在这里查看:http ://bazaar.launchpad.net/~gotwig/lens-cooking/lens-cooking/view/head:/unity-scope-gourmet
所以,这是我的代码的特定部分:
if row[14]:
open('/tmp/unity-scope-gourmet/icon' + str(i), 'wb').write(row[14])
model.append(uri, '/tmp/unity-scope-gourmet/icon' + str(i), 1, "text/html", title, comment, uri)
else:
if os.path.exists('/tmp/unity-scope-gourmet/icon' + str(i)): os.remove('/tmp/unity-scope-gourmet/icon' + str(i))
model.append(uri, '', 1, "text/html", title, comment, uri)