如何在任务栏指示器中显示从远程 URL 获取的数字?

如何在任务栏指示器中显示从远程 URL 获取的数字?

我正在寻找一种解决方案(应用程序),使我能够每 x 秒向特定网页发出一次请求并检索该号码(该号码是那里的唯一内容,没有 html、没有 xml 或其他任何东西)并在任务栏中显示该号码。

有这样的应用程序吗?

谢谢

答案1

以下 python 代码片段应该适合您:

#!/usr/bin/env python

import re
import sys
import urllib2

from gi.repository import Gtk, GLib
from gi.repository import AppIndicator3 as appindicator

class MyIndicator:

    def __init__(self):
    # Create Indicator with icon and label
        icon_image = "/usr/share/unity/icons/panel-shadow.png"
        self.ind = appindicator.Indicator.new(
            "MagicNumber",
            icon_image,
            appindicator.IndicatorCategory.APPLICATION_STATUS
        )
        self.ind.set_status(appindicator.IndicatorStatus.ACTIVE)
        self.menu_structure()

    # Menu structure
    def menu_structure(self):
        # GTK menu
        self.menu = Gtk.Menu()
        self.exit = Gtk.MenuItem("Exit")
        self.exit.connect("activate", self.quit)
        self.exit.show()
        self.menu.append(self.exit)
        self.ind.set_menu(self.menu)

        content = urllib2.urlopen('http://askubuntu.com/questions')
        questions = re.search('<div class="summarycount al">(.*?)</div>', content.read())
        self.ind.set_label(str(questions.group(1)), "")

        GLib.timeout_add_seconds(2,self.menu_structure) 

    def quit(self, widget):
        sys.exit(0)

if __name__ == "__main__":
    indicator = MyIndicator()
    Gtk.main()

只需根据您的需要替换url2第二次延迟和模式即可。re.search

re.search('(.*)', content.read())如果您的文件只包含数字,那么应该可以工作。

上述代码在任务栏中显示 Askubuntu 上的问题总数:

                     

参考:https://unity.ubuntu.com/projects/appindicators/

相关内容