OSDN Git Service

最新版チェック機能追加
authorhrwatahiki <hrwatahiki@44a3fe10-d6a8-4042-99bc-5bf971f0e03b>
Sat, 18 May 2013 03:44:58 +0000 (03:44 +0000)
committerhrwatahiki <hrwatahiki@44a3fe10-d6a8-4042-99bc-5bf971f0e03b>
Sat, 18 May 2013 03:44:58 +0000 (03:44 +0000)
git-svn-id: https://svn.osdn.net/svnroot/pydun/trunk@32 44a3fe10-d6a8-4042-99bc-5bf971f0e03b

Pydun.exe
Pydun.py

index f5ca2be..4114e0e 100644 (file)
Binary files a/Pydun.exe and b/Pydun.exe differ
index 2454291..2589148 100644 (file)
--- a/Pydun.py
+++ b/Pydun.py
@@ -11,6 +11,8 @@ import sys
 import os.path\r
 import codecs\r
 import locale\r
+import urllib\r
+import xml.etree.ElementTree\r
 import webbrowser\r
 from PySide import QtCore, QtGui\r
 import yaml\r
@@ -21,6 +23,7 @@ _mapimages = None
 _undomanager = None\r
 \r
 projecturl = "http://sourceforge.jp/projects/pydun/"\r
+projectrssurl = "http://sourceforge.jp/projects/pydun/releases/rss"\r
 projectversion = "1.0.4"\r
 \r
 \r
@@ -325,6 +328,12 @@ class MainFrame(QtGui.QFrame):
         self.backcolorbox.setSizePolicy(\r
             QtGui.QSizePolicy.Fixed, QtGui.QSizePolicy.Fixed)\r
 \r
+        latestversion = getlatestversion()\r
+        if latestversion != projectversion:\r
+            self.update = QtGui.QLabel(self)\r
+            self.update.setAlignment(QtCore.Qt.AlignTop | QtCore.Qt.AlignLeft)\r
+            self.update.setText(u"<a href='{url}'>最新のPydun({ver})がダウンロードできます。</a>".format(url=projecturl, ver=latestversion))\r
+            self.update.setOpenExternalLinks(True)\r
 \r
         layout = QtGui.QGridLayout(self)\r
         layout.addWidget(scrollarea, 0, 0, 1, 3)\r
@@ -334,6 +343,8 @@ class MainFrame(QtGui.QFrame):
         layout.addWidget(self.backcolorbutton, 3, 1, 1, 2)\r
         layout.addWidget(self.setbackcolorbutton, 4, 1, 1, 1)\r
         layout.addWidget(self.backcolorbox, 4, 2, 1, 1)\r
+        if latestversion != projectversion:\r
+            layout.addWidget(self.update, 5, 0, 1, 3)\r
 \r
         self.setLayout(layout)\r
 \r
@@ -1343,6 +1354,19 @@ def getcolorfromstring(colorstring):
 def basedir():\r
     return os.path.dirname(os.path.abspath(sys.argv[0]))\r
 \r
+def getlatestversion():\r
+    try:\r
+        rss = urllib.urlopen(projectrssurl)\r
+        rssstring = rss.read()\r
+        rsstree = xml.etree.ElementTree.fromstring(rssstring)\r
+        item = rsstree.find("channel/item/title")\r
+        ver = (item.text.split(" "))[2]\r
+        rss.close()\r
+    except:\r
+        ver = projectversion\r
+    return ver\r
+\r
+\r
 def main():\r
     loadconfig()\r
     app = QtGui.QApplication(sys.argv)\r