From 3e8bfcf3cbfb6f4d44375379fc85cd912214c471 Mon Sep 17 00:00:00 2001
From: Kiooeht <kiooeht@gmail.com>
Date: Thu, 26 May 2011 00:40:30 -0700
Subject: [PATCH] CTCP Version reply

---
 CHANGELOG.mkdn |  1 +
 irc.py         |  5 +++++
 menus.py       |  3 ++-
 pesterchum.py  |  2 ++
 version.py     | 14 ++++++++++++++
 5 files changed, 24 insertions(+), 1 deletion(-)
 create mode 100644 version.py

diff --git a/CHANGELOG.mkdn b/CHANGELOG.mkdn
index 4c08601..7f6f619 100644
--- a/CHANGELOG.mkdn
+++ b/CHANGELOG.mkdn
@@ -33,6 +33,7 @@ CHANGELOG
 * Check Pyqt4 and pygame are installed and correct versions - Kiooeht [evacipatedBox]
 * Advanced Mode: View memo (channel) modes - Kiooeht [evacipatedBox]
 * Quirk groups - Kiooeht [evacipatedBox]
+* CTCP Version reply - Kiooeht [evacipatedBox]
 * Bug fixes
     * Logviewer updates - Kiooeht [evacipatedBox]
     * Memo scrollbar thing - Kiooeht [evacipatedBox]
diff --git a/irc.py b/irc.py
index 8c6929b..9f0a266 100644
--- a/irc.py
+++ b/irc.py
@@ -8,6 +8,7 @@ import socket
 
 from dataobjs import Mood, PesterProfile
 from generic import PesterList
+from version import _pcVersion
 
 logging.basicConfig(level=logging.INFO)
 
@@ -271,6 +272,10 @@ class PesterHandler(DefaultCommandHandler):
             return
         # silently ignore CTCP
         if msg[0] == '\x01':
+            handle = nick[0:nick.find("!")]
+            logging.info("---> recv \"CTCP %s :%s\"" % (handle, msg[1:-1]))
+            if msg[1:-1] == "VERSION":
+                helpers.notice(self.parent.cli, handle, "\x01VERSION Pesterchum %s\x01" % (_pcVersion))
             return
         handle = nick[0:nick.find("!")]
         logging.info("---> recv \"PRIVMSG %s :%s\"" % (handle, msg))
diff --git a/menus.py b/menus.py
index 591972d..48abc2f 100644
--- a/menus.py
+++ b/menus.py
@@ -5,6 +5,7 @@ from os import remove
 from generic import RightClickList, RightClickTree, MultiTextDialog
 from dataobjs import pesterQuirk, PesterProfile
 from memos import TimeSlider, TimeInput
+from version import _pcVersion
 
 class PesterQuirkItem(QtGui.QTreeWidgetItem):
     def __init__(self, quirk):
@@ -1234,7 +1235,7 @@ class AboutPesterchum(QtGui.QDialog):
         self.mainwindow = parent
         self.setStyleSheet(self.mainwindow.theme["main/defaultwindow/style"])
 
-        self.title = QtGui.QLabel("P3ST3RCHUM V. 3.14.2")
+        self.title = QtGui.QLabel("P3ST3RCHUM V. %s" % (_pcVersion))
         self.credits = QtGui.QLabel("Programming by:\n\
   illuminatedwax (ghostDunk)\n\
   Kiooeht (evacipatedBox)\n\
diff --git a/pesterchum.py b/pesterchum.py
index 81a2938..820a548 100644
--- a/pesterchum.py
+++ b/pesterchum.py
@@ -1,4 +1,6 @@
 # pesterchum
+import version
+version.pcVerCalc()
 import logging
 import os, sys, getopt
 import os.path
diff --git a/version.py b/version.py
new file mode 100644
index 0000000..c89fd06
--- /dev/null
+++ b/version.py
@@ -0,0 +1,14 @@
+import urllib
+
+_pcMajor = "3.14"
+_pcMinor = "2"
+_pcStatus = "1" # 0 = alpha
+                # 1 = beta
+                # 2 = release candidate
+                # 3 = public release
+_pcRevision = "3"
+_pcVersion = ""
+
+def pcVerCalc():
+    global _pcVersion
+    _pcVersion = "%s.%s.%s-%s" % (_pcMajor, _pcMinor, _pcStatus, _pcRevision)