From 8ef165507d80c1f5e7b2747b905f3f5287f8f7ea Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?dzikie=20dro=C5=BCd=C5=BCe?= Date: Sat, 23 Nov 2013 18:24:58 +0100 Subject: [PATCH] 8===D~ --- Makefile | 9 +++ hs-applet/contents/code/main.py | 66 ++++++++++++++++++++ hs-applet/contents/images/syrenka-small.png | Bin 0 -> 2041 bytes hs-applet/metadata.desktop | 19 ++++++ 4 files changed, 94 insertions(+) create mode 100644 Makefile create mode 100644 hs-applet/contents/code/main.py create mode 100644 hs-applet/contents/images/syrenka-small.png create mode 100644 hs-applet/metadata.desktop diff --git a/Makefile b/Makefile new file mode 100644 index 0000000..dd40550 --- /dev/null +++ b/Makefile @@ -0,0 +1,9 @@ +all: zip install view +zip: + cd hs-applet; zip -r ../hs-applet.zip . + +install: + plasmapkg -u hs-applet.zip + +view: + plasma-windowed hs-applet diff --git a/hs-applet/contents/code/main.py b/hs-applet/contents/code/main.py new file mode 100644 index 0000000..db3d8f0 --- /dev/null +++ b/hs-applet/contents/code/main.py @@ -0,0 +1,66 @@ +#!/usr/bin/env python +# -*- encoding: utf-8 -*- +from PyQt4.QtCore import Qt, pyqtSignature +from PyQt4 import QtCore +from PyQt4.QtGui import QGraphicsLinearLayout, QIcon +from PyKDE4.plasma import Plasma +from PyKDE4 import plasmascript +from urllib2 import urlopen, URLError, HTTPError +import json + + +INTERVAL = 15 + +class HelloPython(plasmascript.Applet): + def __init__(self,parent,args=None): + super(HelloPython, self).__init__(parent) + + def init(self): + self.setHasConfigurationInterface(False) + self.setAspectRatioMode(Plasma.IgnoreAspectRatio) + + self.theme = Plasma.Svg(self) + self.theme.setImagePath("widgets/background") + self.setBackgroundHints(Plasma.Applet.DefaultBackground) + + self.layout = QGraphicsLinearLayout(Qt.Horizontal, self.applet) + + hs_button = Plasma.ToolButton(); + hs_button.setIcon(QIcon(self.package().path() + "contents/images/syrenka-small.png")) + QtCore.QObject.connect(hs_button, QtCore.SIGNAL('clicked()'), self.update_list) + + self.at_list = Plasma.Label(self.applet) + self.layout.addItem(self.at_list) + self.layout.addItem(hs_button) + self.applet.setLayout(self.layout) + self.update_list() + + self.resize(125, 125) + + def get_user_list(self): + try: + api_content = urlopen("https://at.hackerspace.pl/api").read() + except (URLError, HTTPError): + pass # TODO: + users = json.loads(api_content)["users"] + return (x["login"] for x in users) + + + def connectToEngine(self): + self.timeEngine = self.dataEngine("time") + self.timeEngine.connectSource(self.currentTimezone, + self, INTERVAL*6000, Plasma.AlignToMinute) + + + def update_list(self): + self.at_list.setText("\n".join(self.get_user_list())) + + + @pyqtSignature("dataUpdated(const QString &, const Plasma::DataEngine::Data &)") + def dataUpdated(self, sourceName, data): + + self.update_list() + + +def CreateApplet(parent): + return HelloPython(parent) diff --git a/hs-applet/contents/images/syrenka-small.png b/hs-applet/contents/images/syrenka-small.png new file mode 100644 index 0000000000000000000000000000000000000000..94715dcb57191cfaa685063a356fce8aefcbb480 GIT binary patch literal 2041 zcmVQF(00004b3#c}2nYxW zd@;$#|UoV&L<0`;Cz~6yy z0`CG_k4Im~IC+hvQ@ePObcUoBNrNPPFNClqFR*S!CLb;7K1mIdo|CjMn!LZHJ(6Db zXS1XieCQ!b2PCyix>V9q;KC5Xo;<(;Fj>;qB#rQ=zoeTaEtk|R>9C~#6yzm+#6b?1 zG)z*3q-~P+d;2Ytrb`+lX=DiD<-EXlNm?Rlr=<5K9g*~yq#8+!B#o3*CFxb!E^STx zZVMs2FG)a)Y_~cj-4Q}qn+KF!*<-+A;0Uk{I0VcFHURU0Q9$?H6XYzx!PQH8L$*8X zBu$gFID}A_SVTYB=RHGGKiLj%mh`-&6(NKpWd#;Zyjb=b+9jPGLil{tca5amCA}zV zwWPf=;~6dK9GO+l4k4^57r4U2gWdlO10Dfxi2A+->;|TEF}4D@8rTn9S#Dr+fK~p! z8~9WN_+P+;6gtiX-Uco&C$Q&$>3-M`0F~Z;3Gk;3dYXU^;7jEIHOQ^825146MSXLD z){Oej@twO3II)ZQrXNd3h5w!>>Dds%TaxM|#aBtaq}Q?la|4(l>2ygi0W*Pdz!YGC z%#w$eR0Nz4Z1MMIU`Ju4zrVhb^7k(Q zFBQ&QISOzR@EXvNMtC0ZsJ{>QGxAAy1sj3uysu{&fZYbHNGn|DZegg`uLd^xZZ^Ad zta4x10xZc1>KfopU__QdzXE;|)gJ-galos9Yk{G_SAo?T0rduM1>OKYk!7rakGl`+ z?ez*^2rv=|k=zLPRSSSxZ>t3+`7;ry_V#MvMqr;C!N^RYqDh|uW~PuE4?GGS1Ws{F zeihgbybk;gsC2_w1Du@~P!;C+w*xn37*`G41^nLYwLmuqbQMsQ3s5w{d|)eZ1<;9d zCuHk^E3v?1fm`qp*8%Wz;8Neg`M`Jm(ATHM69Wj6R)!GnF9E8Xq$gzD|4m76OPUx$ z*nwU2yJTK}mW+B2lr&gI#iz+AQu^XMusns_b--VNiXweOfgb>;M{T_^*3lPu3;0Y{ zV58j9#wOYa0j++Jt6h0xk@2H}ANqOwDKO64pLe~t05=2AronS`)ggqP1Ppk#`q!%gmV_K zE-jYi0iG(Ut;CpG8E4xcwH=m4SaBIBi=qm1v`acIxqws!<4k9jka+-jAklU`uo*bP z>wSE;rUPdIcK{98O|dX5r~w#*=;rle?%-tL1Dt_G?UlenV3$7!f&08~yD#`5U@R8- zX96}HINM;Ha!-wOO9ocz-O_5_95WCc=AYQlYh1+fu8PG;xa!gs7frZ zd<7U-q(5M6;W8{V+lyT>gA;Po9Mn|c24EfL8&AfA4~!9~OBiC2%ogC+z{5rQFTnU# zCGa#xt?$G#LKuOuE5A#oqw*TME}!R{-P3drVYU3SY-7_ z|7;sD7qJmo4Sc(cxvury?{e3U_F-IUrN6geysSWt=K%lYe{_41pR*yrcO2vb2UzkG zxgqSMi>nD}1fD8XW&^*8I#>FR+>Tv84N+e`7NE?*D9}8wk17Q!(s32WI3`DJr(t1T z2XIlLvH2)UtM_zJ4+0-8qPQ7o!<^}QawJeN8uSjZ%#TC|@Gx*{EHn|=oVHIx*9YC$d%Z2OMLwaS0Vc!>K7q|dpjvg2p6cy1$lv`Ef~9PPwfeOyY~X8 z{2xIzx|{i2)`33;{*mRH$)I}*mg^{Pg((zVk44?*ml0HfY#!f#0KmnrXekL&m{Csy zu-q*$d%)X;(pvZK2eE`ns*IrDeG@P;a1bMi)oJHV{hv56UY6UKDrvW*-$_~{`?v0p zKNXTDNotb0jQ1oxDe2Y_!ltxyWdarf>@KNM(uI=FlqFeCkR?(i=`WJjN?PlQnq1|- XK~aqChZ!!+00000NkvXXu0mjfZc3us literal 0 HcmV?d00001 diff --git a/hs-applet/metadata.desktop b/hs-applet/metadata.desktop new file mode 100644 index 0000000..ad11123 --- /dev/null +++ b/hs-applet/metadata.desktop @@ -0,0 +1,19 @@ +[Desktop Entry] +Encoding=UTF-8 +Name=hs-applet +Type=Service +ServiceTypes=Plasma/Applet +Icon=chronometer +X-Plasma-API=python +X-Plasma-MainScript=code/main.py +X-Plasma-DefaultSize=125,125 + +X-KDE-PluginInfo-Author=Papież Polak +X-KDE-PluginInfo-Email=daz@hackerspace.pl +X-KDE-PluginInfo-Name=hs-applet2 +X-KDE-PluginInfo-Version=1.0 +X-KDE-PluginInfo-Website=http://plasma.kde.org/ +X-KDE-PluginInfo-Category=Examples +X-KDE-PluginInfo-Depends= +X-KDE-PluginInfo-License=GPL +X-KDE-PluginInfo-EnabledByDefault=true