Как отобразить число, извлеченное из удаленного 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://Ask-ubuntu.ru/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()
Просто замените url
, 2
вторая задержка и re.search
шаблон для ваших нужд.
re.search('(.*)', content.read())
должно работать, если ваш файл содержит только номер.
Приведенный выше код отображает общее количество вопросов по Askubuntu на панели задач: