buncha new stuff
10
TODO
|
@ -1,18 +1,11 @@
|
||||||
Features:
|
Features:
|
||||||
* chumdb not working great
|
|
||||||
* tab recombining gives wrong window icon
|
|
||||||
* switch focus to lineedit
|
|
||||||
* colors from ppl msging you not on your buddy list dont work - check chumdb
|
|
||||||
* scaling icons
|
* scaling icons
|
||||||
* menubar should pass on mouse move
|
|
||||||
* tab background
|
* tab background
|
||||||
* softcode conversation handle
|
|
||||||
* top box layout
|
* top box layout
|
||||||
* mood change image -- can't it be done already?
|
|
||||||
* chat scrolls when switch theme
|
* chat scrolls when switch theme
|
||||||
* softcode menu names and protocol messages, menu location
|
|
||||||
* eliminate "SWITCH" in profile menu
|
* eliminate "SWITCH" in profile menu
|
||||||
* remove highlighted text area if focus in textinput
|
* remove highlighted text area if focus in textinput
|
||||||
|
* new sound on CEASE and BEGIN?
|
||||||
* windows text goes gray when out of focus
|
* windows text goes gray when out of focus
|
||||||
* Logging
|
* Logging
|
||||||
* Block list
|
* Block list
|
||||||
|
@ -23,6 +16,7 @@ Features:
|
||||||
* color tags
|
* color tags
|
||||||
* /me ghostDunk's [GD'S]
|
* /me ghostDunk's [GD'S]
|
||||||
* Transparent background
|
* Transparent background
|
||||||
|
* tab recombining gives wrong window icon
|
||||||
-- release alpha
|
-- release alpha
|
||||||
* shared buddy lists - changes to the buddy list should refresh it?
|
* shared buddy lists - changes to the buddy list should refresh it?
|
||||||
multiple clients share buddy list???
|
multiple clients share buddy list???
|
||||||
|
|
|
@ -1 +1 @@
|
||||||
{"gamblingGenocider": {"color": "#00ff00", "handle": "gamblingGenocider", "mood": "offline"}, "aquaMarinist": {"color": "#00caca", "handle": "aquaMarinist", "mood": "offline"}, "unknownTraveler": {"color": "#006666", "handle": "unknownTraveler", "mood": "offline"}, "captainCaveman": {"color": "#7c414e", "handle": "captainCaveman", "mood": "offline"}}
|
{"aquaMarinist": {"color": "#00caca", "handle": "aquaMarinist", "mood": "offline"}, "superGhost": {"color": "#800564", "handle": "superGhost", "mood": "offline"}, "captainCaveman": {"color": "#7c414e", "handle": "captainCaveman", "mood": "offline"}, "gamblingGenocider": {"color": "#00ff00", "handle": "gamblingGenocider", "mood": "offline"}, "unknownTraveler": {"color": "#006666", "handle": "unknownTraveler", "mood": "offline"}, "marineAquist": {"color": "#00caca", "handle": "marineAquist", "mood": "offline"}}
|
|
@ -1 +1 @@
|
||||||
{"tabs": true, "chums": ["aquaMarinist", "gardenGnostic", "gamblingGenocider", "schlagzeugGator", "mechanicalSpectacle", "marineAquist"], "defaultprofile": "ghostDunk"}
|
{"tabs": true, "chums": ["aquaMarinist", "gardenGnostic", "gamblingGenocider", "schlagzeugGator", "mechanicalSpectacle", "marineAquist", "unknownTraveler"], "defaultprofile": "testProfile"}
|
129
pesterchum.py
|
@ -6,6 +6,7 @@ import logging
|
||||||
import os, sys
|
import os, sys
|
||||||
import os.path
|
import os.path
|
||||||
from datetime import *
|
from datetime import *
|
||||||
|
from string import Template
|
||||||
import random
|
import random
|
||||||
import json
|
import json
|
||||||
import re
|
import re
|
||||||
|
@ -85,11 +86,9 @@ class PesterProfileDB(dict):
|
||||||
fp.close()
|
fp.close()
|
||||||
def getColor(self, handle, default=None):
|
def getColor(self, handle, default=None):
|
||||||
if not self.has_key(handle):
|
if not self.has_key(handle):
|
||||||
print "no color found for %s" % (handle)
|
|
||||||
return default
|
return default
|
||||||
else:
|
else:
|
||||||
print "pulled %s from db" % (handle)
|
return self[handle].color
|
||||||
return self[handle]["color"]
|
|
||||||
def setColor(self, handle, color):
|
def setColor(self, handle, color):
|
||||||
if self.has_key(handle):
|
if self.has_key(handle):
|
||||||
self[handle].color = color
|
self[handle].color = color
|
||||||
|
@ -125,10 +124,10 @@ class PesterProfile(object):
|
||||||
"mood": self.mood.name(),
|
"mood": self.mood.name(),
|
||||||
"color": unicode(self.color.name())})
|
"color": unicode(self.color.name())})
|
||||||
|
|
||||||
def beganpestermsg(self, otherchum):
|
def beganpestermsg(self, otherchum, verb="began pestering"):
|
||||||
return "<span style='color:black;'>-- %s <span style='color:%s'>[%s]</span> began pestering %s <span style='color:%s'>[%s]</span> at %s --</span>" % (self.handle, self.colorhtml(), self.initials(), otherchum.handle, otherchum.colorhtml(), otherchum.initials(), datetime.now().strftime("%H:%M"))
|
return "<span style='color:black;'>-- %s <span style='color:%s'>[%s]</span> %s %s <span style='color:%s'>[%s]</span> at %s --</span>" % (self.handle, self.colorhtml(), self.initials(), verb, otherchum.handle, otherchum.colorhtml(), otherchum.initials(), datetime.now().strftime("%H:%M"))
|
||||||
def ceasedpestermsg(self, otherchum):
|
def ceasedpestermsg(self, otherchum, verb="ceased pestering"):
|
||||||
return "<span style='color:black;'>-- %s <span style='color:%s'>[%s]</span> ceased pestering %s <span style='color:%s'>[%s]</span> at %s --</span>" % (self.handle, self.colorhtml(), self.initials(), otherchum.handle, otherchum.colorhtml(), otherchum.initials(), datetime.now().strftime("%H:%M"))
|
return "<span style='color:black;'>-- %s <span style='color:%s'>[%s]</span> %s %s <span style='color:%s'>[%s]</span> at %s --</span>" % (self.handle, self.colorhtml(), self.initials(), verb, otherchum.handle, otherchum.colorhtml(), otherchum.initials(), datetime.now().strftime("%H:%M"))
|
||||||
|
|
||||||
@staticmethod
|
@staticmethod
|
||||||
def checkLength(handle):
|
def checkLength(handle):
|
||||||
|
@ -157,11 +156,10 @@ class pesterTheme(dict):
|
||||||
v = v[k]
|
v = v[k]
|
||||||
return v
|
return v
|
||||||
def pathHook(self, d):
|
def pathHook(self, d):
|
||||||
from string import Template
|
|
||||||
for (k, v) in d.iteritems():
|
for (k, v) in d.iteritems():
|
||||||
if type(v) is unicode:
|
if type(v) is unicode:
|
||||||
s = Template(v)
|
s = Template(v)
|
||||||
d[k] = s.substitute(path=self.path)
|
d[k] = s.safe_substitute(path=self.path)
|
||||||
return d
|
return d
|
||||||
|
|
||||||
class pesterQuirk(object):
|
class pesterQuirk(object):
|
||||||
|
@ -690,14 +688,14 @@ class chumArea(QtGui.QListWidget):
|
||||||
self.addItem(chumLabel)
|
self.addItem(chumLabel)
|
||||||
|
|
||||||
self.optionsMenu = QtGui.QMenu(self)
|
self.optionsMenu = QtGui.QMenu(self)
|
||||||
pester = QtGui.QAction("PESTER", self)
|
self.pester = QtGui.QAction(self.mainwindow.theme["main/menus/rclickchumlist/pester"], self)
|
||||||
self.connect(pester, QtCore.SIGNAL('triggered()'),
|
self.connect(self.pester, QtCore.SIGNAL('triggered()'),
|
||||||
self, QtCore.SLOT('activateChum()'))
|
self, QtCore.SLOT('activateChum()'))
|
||||||
removechum = QtGui.QAction("REMOVE CHUM", self)
|
self.removechum = QtGui.QAction(self.mainwindow.theme["main/menus/rclickchumlist/removechum"], self)
|
||||||
self.connect(removechum, QtCore.SIGNAL('triggered()'),
|
self.connect(self.removechum, QtCore.SIGNAL('triggered()'),
|
||||||
self, QtCore.SLOT('removeChum()'))
|
self, QtCore.SLOT('removeChum()'))
|
||||||
self.optionsMenu.addAction(pester)
|
self.optionsMenu.addAction(self.pester)
|
||||||
self.optionsMenu.addAction(removechum)
|
self.optionsMenu.addAction(self.removechum)
|
||||||
|
|
||||||
self.sortItems()
|
self.sortItems()
|
||||||
def addChum(self, chum):
|
def addChum(self, chum):
|
||||||
|
@ -719,6 +717,9 @@ class chumArea(QtGui.QListWidget):
|
||||||
def changeTheme(self, theme):
|
def changeTheme(self, theme):
|
||||||
self.setGeometry(*(theme["main/chums/loc"]+theme["main/chums/size"]))
|
self.setGeometry(*(theme["main/chums/loc"]+theme["main/chums/size"]))
|
||||||
self.setStyleSheet(theme["main/chums/style"])
|
self.setStyleSheet(theme["main/chums/style"])
|
||||||
|
self.pester.setText(theme["main/menus/rclickchumlist/pester"])
|
||||||
|
self.removechum.setText(theme["main/menus/rclickchumlist/removechum"])
|
||||||
|
|
||||||
chumlistings = [self.item(i) for i in range(0, self.count())]
|
chumlistings = [self.item(i) for i in range(0, self.count())]
|
||||||
for c in chumlistings:
|
for c in chumlistings:
|
||||||
c.changeTheme(theme)
|
c.changeTheme(theme)
|
||||||
|
@ -992,19 +993,19 @@ class PesterText(QtGui.QTextEdit):
|
||||||
parent.setChumOpen(True)
|
parent.setChumOpen(True)
|
||||||
window = parent.mainwindow
|
window = parent.mainwindow
|
||||||
me = window.profile()
|
me = window.profile()
|
||||||
msg = chum.beganpestermsg(me)
|
msg = chum.beganpestermsg(me, window.theme["convo/text/beganpester"])
|
||||||
self.append(msg)
|
self.append(msg)
|
||||||
elif msg == "PESTERCHUM:CEASE":
|
elif msg == "PESTERCHUM:CEASE":
|
||||||
parent = self.parent()
|
parent = self.parent()
|
||||||
parent.setChumOpen(False)
|
parent.setChumOpen(False)
|
||||||
window = parent.mainwindow
|
window = parent.mainwindow
|
||||||
me = window.profile()
|
me = window.profile()
|
||||||
msg = chum.ceasedpestermsg(me)
|
msg = chum.ceasedpestermsg(me, window.theme["convo/text/ceasepester"])
|
||||||
self.append(msg)
|
self.append(msg)
|
||||||
else:
|
else:
|
||||||
if not self.parent().chumopen and chum is not self.parent().mainwindow.profile():
|
if not self.parent().chumopen and chum is not self.parent().mainwindow.profile():
|
||||||
me = self.parent().mainwindow.profile()
|
me = self.parent().mainwindow.profile()
|
||||||
beginmsg = chum.beganpestermsg(me)
|
beginmsg = chum.beganpestermsg(me, self.parent().mainwindow.theme["convo/text/beganpester"])
|
||||||
self.parent().setChumOpen(True)
|
self.parent().setChumOpen(True)
|
||||||
self.append(beginmsg)
|
self.append(beginmsg)
|
||||||
|
|
||||||
|
@ -1016,6 +1017,7 @@ class PesterText(QtGui.QTextEdit):
|
||||||
def focusInEvent(self, event):
|
def focusInEvent(self, event):
|
||||||
self.parent().clearNewMessage()
|
self.parent().clearNewMessage()
|
||||||
QtGui.QTextEdit.focusInEvent(self, event)
|
QtGui.QTextEdit.focusInEvent(self, event)
|
||||||
|
self.parent().textInput.setFocus()
|
||||||
|
|
||||||
class PesterInput(QtGui.QLineEdit):
|
class PesterInput(QtGui.QLineEdit):
|
||||||
def __init__(self, theme, parent=None):
|
def __init__(self, theme, parent=None):
|
||||||
|
@ -1039,7 +1041,9 @@ class PesterConvo(QtGui.QFrame):
|
||||||
self.setWindowIcon(chum.mood.icon(self.mainwindow.theme))
|
self.setWindowIcon(chum.mood.icon(self.mainwindow.theme))
|
||||||
self.setWindowTitle(chum.handle)
|
self.setWindowTitle(chum.handle)
|
||||||
|
|
||||||
self.chumLabel = QtGui.QLabel(chum.handle, self)
|
t = Template(self.mainwindow.theme["convo/chumlabel/text"])
|
||||||
|
|
||||||
|
self.chumLabel = QtGui.QLabel(t.safe_substitute(handle=chum.handle), self)
|
||||||
self.chumLabel.setStyleSheet(self.mainwindow.theme["convo/chumlabel/style"])
|
self.chumLabel.setStyleSheet(self.mainwindow.theme["convo/chumlabel/style"])
|
||||||
self.textArea = PesterText(self.mainwindow.theme, self)
|
self.textArea = PesterText(self.mainwindow.theme, self)
|
||||||
self.textInput = PesterInput(self.mainwindow.theme, self)
|
self.textInput = PesterInput(self.mainwindow.theme, self)
|
||||||
|
@ -1060,13 +1064,13 @@ class PesterConvo(QtGui.QFrame):
|
||||||
if parent:
|
if parent:
|
||||||
parent.addChat(self)
|
parent.addChat(self)
|
||||||
if initiated:
|
if initiated:
|
||||||
msg = self.mainwindow.profile().beganpestermsg(self.chum)
|
msg = self.mainwindow.profile().beganpestermsg(self.chum, self.mainwindow.theme["convo/text/beganpester"])
|
||||||
self.textArea.append(msg)
|
self.textArea.append(msg)
|
||||||
self.newmessage = False
|
self.newmessage = False
|
||||||
|
|
||||||
def updateMood(self, mood):
|
def updateMood(self, mood):
|
||||||
if mood.name() == "offline":
|
if mood.name() == "offline" and self.chumopen == True:
|
||||||
msg = self.mainwindow.profile().ceasedpestermsg(self.chum)
|
msg = self.chum.ceasedpestermsg(self.mainwindow.profile(), self.mainwindow.theme["convo/text/ceasepester"])
|
||||||
self.textArea.append(msg)
|
self.textArea.append(msg)
|
||||||
self.chumopen = False
|
self.chumopen = False
|
||||||
if self.parent():
|
if self.parent():
|
||||||
|
@ -1129,6 +1133,8 @@ class PesterConvo(QtGui.QFrame):
|
||||||
self.resize(*theme["convo/size"])
|
self.resize(*theme["convo/size"])
|
||||||
self.setStyleSheet(theme["convo/style"])
|
self.setStyleSheet(theme["convo/style"])
|
||||||
self.setWindowIcon(self.chum.mood.icon(theme))
|
self.setWindowIcon(self.chum.mood.icon(theme))
|
||||||
|
t = Template(self.mainwindow.theme["convo/chumlabel/text"])
|
||||||
|
self.chumLabel.setText(t.safe_substitute(handle=self.chum.handle))
|
||||||
self.chumLabel.setStyleSheet(theme["convo/chumlabel/style"])
|
self.chumLabel.setStyleSheet(theme["convo/chumlabel/style"])
|
||||||
self.textArea.changeTheme(theme)
|
self.textArea.changeTheme(theme)
|
||||||
self.textInput.changeTheme(theme)
|
self.textInput.changeTheme(theme)
|
||||||
|
@ -1170,29 +1176,37 @@ class PesterWindow(MovingWindow):
|
||||||
|
|
||||||
self.move(100, 100)
|
self.move(100, 100)
|
||||||
|
|
||||||
opts = QtGui.QAction("OPTIONS", self)
|
opts = QtGui.QAction(self.theme["main/menus/client/options"], self)
|
||||||
|
self.opts = opts
|
||||||
self.connect(opts, QtCore.SIGNAL('triggered()'),
|
self.connect(opts, QtCore.SIGNAL('triggered()'),
|
||||||
self, QtCore.SLOT('openOpts()'))
|
self, QtCore.SLOT('openOpts()'))
|
||||||
exitaction = QtGui.QAction("EXIT", self)
|
exitaction = QtGui.QAction(self.theme["main/menus/client/exit"], self)
|
||||||
|
self.exitaction = exitaction
|
||||||
self.connect(exitaction, QtCore.SIGNAL('triggered()'),
|
self.connect(exitaction, QtCore.SIGNAL('triggered()'),
|
||||||
self, QtCore.SLOT('close()'))
|
self, QtCore.SLOT('close()'))
|
||||||
self.menu = QtGui.QMenuBar(self)
|
self.menu = QtGui.QMenuBar(self)
|
||||||
|
|
||||||
filemenu = self.menu.addMenu("FILE")
|
filemenu = self.menu.addMenu(self.theme["main/menus/client/_name"])
|
||||||
|
self.filemenu = filemenu
|
||||||
filemenu.addAction(opts)
|
filemenu.addAction(opts)
|
||||||
filemenu.addAction(exitaction)
|
filemenu.addAction(exitaction)
|
||||||
|
|
||||||
switch = QtGui.QAction("SWITCH", self)
|
changetheme = QtGui.QAction(self.theme["main/menus/profile/theme"], self)
|
||||||
self.connect(switch, QtCore.SIGNAL('triggered()'),
|
self.changetheme = changetheme
|
||||||
self, QtCore.SLOT('switchProfile()'))
|
|
||||||
changetheme = QtGui.QAction("THEME", self)
|
|
||||||
self.connect(changetheme, QtCore.SIGNAL('triggered()'),
|
self.connect(changetheme, QtCore.SIGNAL('triggered()'),
|
||||||
self, QtCore.SLOT('pickTheme()'))
|
self, QtCore.SLOT('pickTheme()'))
|
||||||
changequirks = QtGui.QAction("QUIRKS", self)
|
changequirks = QtGui.QAction(self.theme["main/menus/profile/quirks"], self)
|
||||||
|
self.changequirks = changequirks
|
||||||
self.connect(changequirks, QtCore.SIGNAL('triggered()'),
|
self.connect(changequirks, QtCore.SIGNAL('triggered()'),
|
||||||
self, QtCore.SLOT('openQuirks()'))
|
self, QtCore.SLOT('openQuirks()'))
|
||||||
|
|
||||||
profilemenu = self.menu.addMenu("PROFILE")
|
switch = QtGui.QAction(self.theme["main/menus/profile/switch"], self)
|
||||||
|
self.switch = switch
|
||||||
|
self.connect(switch, QtCore.SIGNAL('triggered()'),
|
||||||
|
self, QtCore.SLOT('switchProfile()'))
|
||||||
|
|
||||||
|
profilemenu = self.menu.addMenu(self.theme["main/menus/profile/_name"])
|
||||||
|
self.profilemenu = profilemenu
|
||||||
profilemenu.addAction(changetheme)
|
profilemenu.addAction(changetheme)
|
||||||
profilemenu.addAction(changequirks)
|
profilemenu.addAction(changequirks)
|
||||||
profilemenu.addAction(switch)
|
profilemenu.addAction(switch)
|
||||||
|
@ -1206,7 +1220,7 @@ class PesterWindow(MovingWindow):
|
||||||
|
|
||||||
self.chumdb = PesterProfileDB()
|
self.chumdb = PesterProfileDB()
|
||||||
|
|
||||||
chums = [PesterProfile(c) for c in set(self.config.chums())]
|
chums = [PesterProfile(c, chumdb=self.chumdb) for c in set(self.config.chums())]
|
||||||
self.chumList = chumArea(chums, self)
|
self.chumList = chumArea(chums, self)
|
||||||
self.connect(self.chumList,
|
self.connect(self.chumList,
|
||||||
QtCore.SIGNAL('itemActivated(QListWidgetItem *)'),
|
QtCore.SIGNAL('itemActivated(QListWidgetItem *)'),
|
||||||
|
@ -1265,7 +1279,7 @@ class PesterWindow(MovingWindow):
|
||||||
mood = matchingChums[0].mood
|
mood = matchingChums[0].mood
|
||||||
else:
|
else:
|
||||||
mood = Mood(0)
|
mood = Mood(0)
|
||||||
chum = PesterProfile(handle, mood=mood)
|
chum = PesterProfile(handle, mood=mood, chumdb=self.chumdb)
|
||||||
self.newConversation(chum, False)
|
self.newConversation(chum, False)
|
||||||
if len(matchingChums) == 0:
|
if len(matchingChums) == 0:
|
||||||
self.moodRequest.emit(chum)
|
self.moodRequest.emit(chum)
|
||||||
|
@ -1327,11 +1341,21 @@ class PesterWindow(MovingWindow):
|
||||||
self.setWindowIcon(QtGui.QIcon(theme["main/icon"]))
|
self.setWindowIcon(QtGui.QIcon(theme["main/icon"]))
|
||||||
self.setWindowTitle(theme["main/windowtitle"])
|
self.setWindowTitle(theme["main/windowtitle"])
|
||||||
self.setStyleSheet("QFrame#main { "+theme["main/style"]+" }")
|
self.setStyleSheet("QFrame#main { "+theme["main/style"]+" }")
|
||||||
self.menu.setStyleSheet("QMenuBar { background: transparent; %s } QMenuBar::item { background: transparent; } " % (theme["main/menubar/style"]) + "QMenu { background: transparent; %s } QMenu::item::selected { %s }" % (theme["main/menu/style"], theme["main/menu/selected"]))
|
self.menu.setStyleSheet("QMenuBar { background: transparent; %s } QMenuBar::item { background: transparent; %s } " % (theme["main/menubar/style"], theme["main/menu/menuitem"]) + "QMenu { background: transparent; %s } QMenu::item::selected { %s }" % (theme["main/menu/style"], theme["main/menu/selected"]))
|
||||||
self.closeButton.setIcon(QtGui.QIcon(theme["main/close/image"]))
|
self.closeButton.setIcon(QtGui.QIcon(theme["main/close/image"]))
|
||||||
self.closeButton.move(*theme["main/close/loc"])
|
self.closeButton.move(*theme["main/close/loc"])
|
||||||
self.miniButton.setIcon(QtGui.QIcon(theme["main/minimize/image"]))
|
self.miniButton.setIcon(QtGui.QIcon(theme["main/minimize/image"]))
|
||||||
self.miniButton.move(*theme["main/minimize/loc"])
|
self.miniButton.move(*theme["main/minimize/loc"])
|
||||||
|
# menus
|
||||||
|
self.menu.move(*theme["main/menu/loc"])
|
||||||
|
self.opts.setText(theme["main/menus/client/options"])
|
||||||
|
self.exitaction.setText(theme["main/menus/client/exit"])
|
||||||
|
self.filemenu.setTitle(theme["main/menus/client/_name"])
|
||||||
|
self.changetheme.setText(theme["main/menus/profile/theme"])
|
||||||
|
self.changequirks.setText(theme["main/menus/profile/quirks"])
|
||||||
|
self.switch.setText(theme["main/menus/profile/switch"])
|
||||||
|
self.profilemenu.setTitle(theme["main/menus/profile/_name"])
|
||||||
|
|
||||||
# moods
|
# moods
|
||||||
self.moodsLabel.setText(theme["main/moodlabel/text"])
|
self.moodsLabel.setText(theme["main/moodlabel/text"])
|
||||||
self.moodsLabel.move(*theme["main/moodlabel/loc"])
|
self.moodsLabel.move(*theme["main/moodlabel/loc"])
|
||||||
|
@ -1411,7 +1435,11 @@ class PesterWindow(MovingWindow):
|
||||||
self.newConversationWindow(curChum)
|
self.newConversationWindow(curChum)
|
||||||
@QtCore.pyqtSlot(QtGui.QListWidgetItem)
|
@QtCore.pyqtSlot(QtGui.QListWidgetItem)
|
||||||
def newConversationWindow(self, chumlisting):
|
def newConversationWindow(self, chumlisting):
|
||||||
|
# check chumdb
|
||||||
chum = chumlisting.chum
|
chum = chumlisting.chum
|
||||||
|
color = self.chumdb.getColor(chum)
|
||||||
|
if color:
|
||||||
|
chum.color = color
|
||||||
self.newConversation(chum)
|
self.newConversation(chum)
|
||||||
@QtCore.pyqtSlot(QtCore.QString)
|
@QtCore.pyqtSlot(QtCore.QString)
|
||||||
def closeConvo(self, handle):
|
def closeConvo(self, handle):
|
||||||
|
@ -1456,7 +1484,7 @@ class PesterWindow(MovingWindow):
|
||||||
errormsg.showMessage("THIS IS NOT A VALID CHUMTAG!")
|
errormsg.showMessage("THIS IS NOT A VALID CHUMTAG!")
|
||||||
self.addchumdialog = None
|
self.addchumdialog = None
|
||||||
return
|
return
|
||||||
chum = PesterProfile(handle)
|
chum = PesterProfile(handle, chumdb=self.chumdb)
|
||||||
self.chumList.addChum(chum)
|
self.chumList.addChum(chum)
|
||||||
self.config.addChum(chum)
|
self.config.addChum(chum)
|
||||||
self.moodRequest.emit(chum)
|
self.moodRequest.emit(chum)
|
||||||
|
@ -1539,8 +1567,10 @@ class PesterWindow(MovingWindow):
|
||||||
try:
|
try:
|
||||||
self.changeTheme(pesterTheme(themename))
|
self.changeTheme(pesterTheme(themename))
|
||||||
except ValueError, e:
|
except ValueError, e:
|
||||||
themeWarning = QtGui.QMessageBox()
|
themeWarning = QtGui.QMessageBox(self)
|
||||||
closeWarning.setText("Theme Error: %s", e)
|
themeWarning.setText("Theme Error: %s" % (e))
|
||||||
|
themeWarning.exec_()
|
||||||
|
self.choosetheme = None
|
||||||
return
|
return
|
||||||
# update profile
|
# update profile
|
||||||
self.userprofile.setTheme(self.theme)
|
self.userprofile.setTheme(self.theme)
|
||||||
|
@ -1554,12 +1584,14 @@ class PesterWindow(MovingWindow):
|
||||||
self.chooseprofile.profileBox.currentIndex() > 0:
|
self.chooseprofile.profileBox.currentIndex() > 0:
|
||||||
handle = unicode(self.chooseprofile.profileBox.currentText())
|
handle = unicode(self.chooseprofile.profileBox.currentText())
|
||||||
if handle == self.profile().handle:
|
if handle == self.profile().handle:
|
||||||
|
self.chooseprofile = None
|
||||||
return
|
return
|
||||||
self.userprofile = userProfile(handle)
|
self.userprofile = userProfile(handle)
|
||||||
self.changeTheme(self.userprofile.getTheme())
|
self.changeTheme(self.userprofile.getTheme())
|
||||||
else:
|
else:
|
||||||
handle = unicode(self.chooseprofile.chumHandle.text())
|
handle = unicode(self.chooseprofile.chumHandle.text())
|
||||||
if handle == self.profile().handle:
|
if handle == self.profile().handle:
|
||||||
|
self.chooseprofile = None
|
||||||
return
|
return
|
||||||
profile = PesterProfile(handle,
|
profile = PesterProfile(handle,
|
||||||
self.chooseprofile.chumcolor)
|
self.chooseprofile.chumcolor)
|
||||||
|
@ -1571,9 +1603,9 @@ class PesterWindow(MovingWindow):
|
||||||
self.config.set("defaultprofile", self.userprofile.chat.handle)
|
self.config.set("defaultprofile", self.userprofile.chat.handle)
|
||||||
# this may have to be fixed
|
# this may have to be fixed
|
||||||
self.closeConversations()
|
self.closeConversations()
|
||||||
|
self.chooseprofile = None
|
||||||
self.profileChanged.emit()
|
self.profileChanged.emit()
|
||||||
|
|
||||||
self.chooseprofile = None
|
|
||||||
@QtCore.pyqtSlot()
|
@QtCore.pyqtSlot()
|
||||||
def changeMyColor(self):
|
def changeMyColor(self):
|
||||||
if not hasattr(self, 'colorDialog'):
|
if not hasattr(self, 'colorDialog'):
|
||||||
|
@ -1602,8 +1634,11 @@ class PesterWindow(MovingWindow):
|
||||||
return
|
return
|
||||||
self.changeProfile()
|
self.changeProfile()
|
||||||
|
|
||||||
@QtCore.pyqtSlot(QtCore.QString)
|
@QtCore.pyqtSlot(QtCore.QString, QtCore.QString)
|
||||||
def nickCollision(self, handle):
|
def nickCollision(self, handle, tmphandle):
|
||||||
|
self.mychumhandle.setText(tmphandle)
|
||||||
|
if not hasattr(self, 'chooseprofile'):
|
||||||
|
self.chooseprofile = None
|
||||||
if not self.chooseprofile:
|
if not self.chooseprofile:
|
||||||
h = unicode(handle)
|
h = unicode(handle)
|
||||||
self.changeProfile(collision=h)
|
self.changeProfile(collision=h)
|
||||||
|
@ -1679,7 +1714,7 @@ class PesterIRC(QtCore.QObject):
|
||||||
moodUpdated = QtCore.pyqtSignal(QtCore.QString, Mood)
|
moodUpdated = QtCore.pyqtSignal(QtCore.QString, Mood)
|
||||||
colorUpdated = QtCore.pyqtSignal(QtCore.QString, QtGui.QColor)
|
colorUpdated = QtCore.pyqtSignal(QtCore.QString, QtGui.QColor)
|
||||||
messageReceived = QtCore.pyqtSignal(QtCore.QString, QtCore.QString)
|
messageReceived = QtCore.pyqtSignal(QtCore.QString, QtCore.QString)
|
||||||
nickCollision = QtCore.pyqtSignal(QtCore.QString)
|
nickCollision = QtCore.pyqtSignal(QtCore.QString, QtCore.QString)
|
||||||
|
|
||||||
class PesterHandler(DefaultCommandHandler):
|
class PesterHandler(DefaultCommandHandler):
|
||||||
def privmsg(self, nick, chan, msg):
|
def privmsg(self, nick, chan, msg):
|
||||||
|
@ -1688,6 +1723,7 @@ class PesterHandler(DefaultCommandHandler):
|
||||||
if msg[0] == '\x01':
|
if msg[0] == '\x01':
|
||||||
return
|
return
|
||||||
handle = nick[0:nick.find("!")]
|
handle = nick[0:nick.find("!")]
|
||||||
|
logging.info("---> recv \"PRIVMSG %s :%s\"" % (handle, msg))
|
||||||
if chan == "#pesterchum":
|
if chan == "#pesterchum":
|
||||||
# follow instructions
|
# follow instructions
|
||||||
if msg[0:6] == "MOOD >":
|
if msg[0:6] == "MOOD >":
|
||||||
|
@ -1730,8 +1766,9 @@ class PesterHandler(DefaultCommandHandler):
|
||||||
self.getMood(*chums)
|
self.getMood(*chums)
|
||||||
|
|
||||||
def nicknameinuse(self, server, cmd, nick, msg):
|
def nicknameinuse(self, server, cmd, nick, msg):
|
||||||
helpers.nick(self.client, "pesterClient%d" % (random.randint(100,999)))
|
newnick = "pesterClient%d" % (random.randint(100,999))
|
||||||
self.parent.nickCollision.emit(nick)
|
helpers.nick(self.client, newnick)
|
||||||
|
self.parent.nickCollision.emit(nick, newnick)
|
||||||
def quit(self, nick, reason):
|
def quit(self, nick, reason):
|
||||||
handle = nick[0:nick.find("!")]
|
handle = nick[0:nick.find("!")]
|
||||||
self.parent.moodUpdated.emit(handle, Mood("offline"))
|
self.parent.moodUpdated.emit(handle, Mood("offline"))
|
||||||
|
@ -1745,7 +1782,7 @@ class PesterHandler(DefaultCommandHandler):
|
||||||
self.parent.moodUpdated.emit(handle, Mood("chummy"))
|
self.parent.moodUpdated.emit(handle, Mood("chummy"))
|
||||||
def nick(self, oldnick, newnick):
|
def nick(self, oldnick, newnick):
|
||||||
oldhandle = oldnick[0:oldnick.find("!")]
|
oldhandle = oldnick[0:oldnick.find("!")]
|
||||||
newchum = PesterProfile(newnick)
|
newchum = PesterProfile(newnick, chumdb=self.mainwindow.chumdb)
|
||||||
self.parent.moodUpdated.emit(oldhandle, Mood("offline"))
|
self.parent.moodUpdated.emit(oldhandle, Mood("offline"))
|
||||||
if newnick in self.mainwindow.chumList.chums:
|
if newnick in self.mainwindow.chumList.chums:
|
||||||
self.getMood(newchum)
|
self.getMood(newchum)
|
||||||
|
@ -1848,9 +1885,9 @@ def main():
|
||||||
widget,
|
widget,
|
||||||
QtCore.SLOT('deliverMessage(QString, QString)'))
|
QtCore.SLOT('deliverMessage(QString, QString)'))
|
||||||
irc.connect(irc,
|
irc.connect(irc,
|
||||||
QtCore.SIGNAL('nickCollision(QString)'),
|
QtCore.SIGNAL('nickCollision(QString, QString)'),
|
||||||
widget,
|
widget,
|
||||||
QtCore.SLOT('nickCollision(QString)'))
|
QtCore.SLOT('nickCollision(QString, QString)'))
|
||||||
|
|
||||||
ircapp = IRCThread(irc)
|
ircapp = IRCThread(irc)
|
||||||
ircapp.start()
|
ircapp.start()
|
||||||
|
|
|
@ -1 +1 @@
|
||||||
{"color": "#aa00ff", "theme": "pesterchum", "quirks": [], "handle": "testProfile"}
|
{"color": "#aa00ff", "theme": "trollian", "quirks": [], "handle": "testProfile"}
|
|
@ -10,9 +10,21 @@
|
||||||
"loc": [255, 0]},
|
"loc": [255, 0]},
|
||||||
"menubar": { "style": "font-family: 'Courier New'; font-weight: bold; font-size: 12px;" },
|
"menubar": { "style": "font-family: 'Courier New'; font-weight: bold; font-size: 12px;" },
|
||||||
"menu" : { "style": "font-family: 'Courier New'; font-weight: bold; font-size: 12px; background-color: #fdb302;border:2px solid #ffff00",
|
"menu" : { "style": "font-family: 'Courier New'; font-weight: bold; font-size: 12px; background-color: #fdb302;border:2px solid #ffff00",
|
||||||
"selected": "background-color: #ffff00"
|
"selected": "background-color: #ffff00",
|
||||||
|
"menuitem": "margin-right:10px;",
|
||||||
|
"loc": [7,3]
|
||||||
},
|
},
|
||||||
"sounds": { "alertsound": "$path/alarm.wav" },
|
"sounds": { "alertsound": "$path/alarm.wav" },
|
||||||
|
"menus": {"client": {"_name": "CLIENT",
|
||||||
|
"options": "OPTIONS",
|
||||||
|
"exit": "EXIT"},
|
||||||
|
"profile": {"_name": "PROFILE",
|
||||||
|
"switch": "SWITCH",
|
||||||
|
"theme": "THEME",
|
||||||
|
"quirks": "QUIRKS"},
|
||||||
|
"rclickchumlist": {"pester": "PESTER",
|
||||||
|
"removechum": "REMOVE CHUM"}
|
||||||
|
},
|
||||||
"chums": { "style": "background-color: black;color: white;font: bold;font-family: 'Courier New';selection-background-color:#919191; ",
|
"chums": { "style": "background-color: black;color: white;font: bold;font-family: 'Courier New';selection-background-color:#919191; ",
|
||||||
"loc": [20, 65],
|
"loc": [20, 65],
|
||||||
"size": [266, 270],
|
"size": [266, 270],
|
||||||
|
@ -66,7 +78,7 @@
|
||||||
"size": [100, 40],
|
"size": [100, 40],
|
||||||
"text": "PESTER!"
|
"text": "PESTER!"
|
||||||
},
|
},
|
||||||
"defaultmood": "chummy",
|
"defaultmood": 0,
|
||||||
"moodlabel": { "style": "",
|
"moodlabel": { "style": "",
|
||||||
"loc": [20, 430],
|
"loc": [20, 430],
|
||||||
"text": "MOODS"
|
"text": "MOODS"
|
||||||
|
@ -78,7 +90,7 @@
|
||||||
"size": [133, 30],
|
"size": [133, 30],
|
||||||
"text": "CHUMMY",
|
"text": "CHUMMY",
|
||||||
"icon": "$path/chummy.gif",
|
"icon": "$path/chummy.gif",
|
||||||
"mood": "chummy"
|
"mood": 0
|
||||||
},
|
},
|
||||||
{ "style": "text-align:left; background: white; border:3px solid black; padding: 5px;color: #919191",
|
{ "style": "text-align:left; background: white; border:3px solid black; padding: 5px;color: #919191",
|
||||||
"selected": "text-align:left; background: white; border:3px solid black; padding: 5px;font: bold;",
|
"selected": "text-align:left; background: white; border:3px solid black; padding: 5px;font: bold;",
|
||||||
|
@ -86,7 +98,7 @@
|
||||||
"size": [133, 30],
|
"size": [133, 30],
|
||||||
"text": "PLEASANT",
|
"text": "PLEASANT",
|
||||||
"icon": "$path/pleasant.gif",
|
"icon": "$path/pleasant.gif",
|
||||||
"mood": "pleasant"
|
"mood": 3
|
||||||
},
|
},
|
||||||
{ "style": "text-align:left; background: white; border:3px solid black; padding: 5px;color:#919191;",
|
{ "style": "text-align:left; background: white; border:3px solid black; padding: 5px;color:#919191;",
|
||||||
"selected": "text-align:left; background: white; border:3px solid black; padding: 5px;font: bold;",
|
"selected": "text-align:left; background: white; border:3px solid black; padding: 5px;font: bold;",
|
||||||
|
@ -94,7 +106,7 @@
|
||||||
"size": [133, 30],
|
"size": [133, 30],
|
||||||
"text": "DISTRAUGHT",
|
"text": "DISTRAUGHT",
|
||||||
"icon": "$path/distraught.gif",
|
"icon": "$path/distraught.gif",
|
||||||
"mood": "distraught"
|
"mood": 4
|
||||||
},
|
},
|
||||||
{ "style": "text-align:left; background: white; border:3px solid black; padding: 5px;color:#919191;",
|
{ "style": "text-align:left; background: white; border:3px solid black; padding: 5px;color:#919191;",
|
||||||
"selected": "text-align:left; background: white; border:3px solid black; padding: 5px;font: bold;",
|
"selected": "text-align:left; background: white; border:3px solid black; padding: 5px;font: bold;",
|
||||||
|
@ -102,7 +114,7 @@
|
||||||
"size": [133, 30],
|
"size": [133, 30],
|
||||||
"text": "UNRULY",
|
"text": "UNRULY",
|
||||||
"icon": "$path/unruly.gif",
|
"icon": "$path/unruly.gif",
|
||||||
"mood": "unruly"
|
"mood": 5
|
||||||
},
|
},
|
||||||
{ "style": "text-align:left; background: white; border:3px solid black; padding: 5px;color:#919191;",
|
{ "style": "text-align:left; background: white; border:3px solid black; padding: 5px;color:#919191;",
|
||||||
"selected": "text-align:left; background: white; border:3px solid black; padding: 5px;font: bold;",
|
"selected": "text-align:left; background: white; border:3px solid black; padding: 5px;font: bold;",
|
||||||
|
@ -110,7 +122,7 @@
|
||||||
"size": [133, 30],
|
"size": [133, 30],
|
||||||
"text": "SMOOTH",
|
"text": "SMOOTH",
|
||||||
"icon": "$path/smooth.gif",
|
"icon": "$path/smooth.gif",
|
||||||
"mood": "smooth"
|
"mood": 6
|
||||||
},
|
},
|
||||||
{ "style": "text-align:left; background: red; border:3px solid black; padding: 5px;",
|
{ "style": "text-align:left; background: red; border:3px solid black; padding: 5px;",
|
||||||
"selected": "text-align:left; background: red; border:3px solid black; padding: 5px;font: bold;",
|
"selected": "text-align:left; background: red; border:3px solid black; padding: 5px;font: bold;",
|
||||||
|
@ -118,7 +130,7 @@
|
||||||
"size": [133, 30],
|
"size": [133, 30],
|
||||||
"text": "RANCOROUS",
|
"text": "RANCOROUS",
|
||||||
"icon": "$path/rancorous.gif",
|
"icon": "$path/rancorous.gif",
|
||||||
"mood": "rancorous"
|
"mood": 1
|
||||||
},
|
},
|
||||||
{ "style": "text-align:center; background: #919191; border:3px solid black; padding: 5px;",
|
{ "style": "text-align:center; background: #919191; border:3px solid black; padding: 5px;",
|
||||||
"selected": "text-align:center; background: #919191; border:3px solid black; padding: 5px;font: bold;",
|
"selected": "text-align:center; background: #919191; border:3px solid black; padding: 5px;font: bold;",
|
||||||
|
@ -126,14 +138,16 @@
|
||||||
"size": [263, 30],
|
"size": [263, 30],
|
||||||
"text": "ABSCOND",
|
"text": "ABSCOND",
|
||||||
"icon": "$path/offline.gif",
|
"icon": "$path/offline.gif",
|
||||||
"mood": "offline"
|
"mood": 2
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
"convo":
|
"convo":
|
||||||
{"style": "background: #fdb302; font-family: 'Courier New'",
|
{"style": "background: #fdb302; font-family: 'Courier New'",
|
||||||
"size": [600, 500],
|
"size": [600, 500],
|
||||||
"chumlabel": { "style": "background: rgba(255, 255, 255, 25%);" },
|
"chumlabel": { "style": "background: rgba(255, 255, 255, 25%);",
|
||||||
|
"text" : ":: $handle ::"
|
||||||
|
},
|
||||||
"textarea": {
|
"textarea": {
|
||||||
"style": "background: white;font:bold;"
|
"style": "background: white;font:bold;"
|
||||||
},
|
},
|
||||||
|
@ -144,6 +158,10 @@
|
||||||
"style": "",
|
"style": "",
|
||||||
"newmsgcolor": "#fdb302",
|
"newmsgcolor": "#fdb302",
|
||||||
"tabstyle": 0
|
"tabstyle": 0
|
||||||
|
},
|
||||||
|
"text": {
|
||||||
|
"beganpester": "began pestering",
|
||||||
|
"ceasepester": "ceased pestering"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
BIN
themes/pesterchum6/moodcheck1.gif
Normal file
After Width: | Height: | Size: 109 B |
BIN
themes/pesterchum6/moodcheck2.gif
Normal file
After Width: | Height: | Size: 110 B |
BIN
themes/pesterchum6/moodcheck3.gif
Normal file
After Width: | Height: | Size: 110 B |
BIN
themes/pesterchum6/moodcheck4.gif
Normal file
After Width: | Height: | Size: 110 B |
BIN
themes/pesterchum6/moodcheck5.gif
Normal file
After Width: | Height: | Size: 133 B |
Before Width: | Height: | Size: 7.9 KiB After Width: | Height: | Size: 9 KiB |
|
@ -1,150 +1,167 @@
|
||||||
{"main":
|
{"main":
|
||||||
{"style": "background-image:url($path/pcbg.png);",
|
{"style": "background-image:url($path/pcbg.png);",
|
||||||
"size": [232, 380],
|
"size": [232, 380],
|
||||||
"icon": "$path/trayicon.gif",
|
"icon": "$path/trayicon.png",
|
||||||
"newmsgicon": "$path/trayicon2.gif",
|
"newmsgicon": "$path/trayicon2.png",
|
||||||
"windowtitle": "PESTERCHUM",
|
"windowtitle": "PESTERCHUM",
|
||||||
"close": { "image": "$path/x.gif",
|
"close": { "image": "$path/x.gif",
|
||||||
"loc": [210, 2]},
|
"loc": [210, 2]},
|
||||||
"minimize": { "image": "$path/m.gif",
|
"minimize": { "image": "$path/m.gif",
|
||||||
"loc": [190, 2]},
|
"loc": [190, 2]},
|
||||||
"menubar": { "style": "font-family: 'Courier'; font:bold; font-size: 12px;" },
|
"menubar": { "style": "font-family: 'Courier'; font:bold; font-size: 12px;" },
|
||||||
"menu" : { "style": "font-family: 'Courier'; font: bold; font-size: 12px; background-color: #fdb302;border:2px solid #ffff00",
|
"menu" : { "style": "font-family: 'Courier'; font: bold; font-size: 12px; background-color: #fdb302;border:2px solid #ffff00",
|
||||||
"selected": "background-color: #ffff00"
|
"menuitem": "margin-right:10px;",
|
||||||
},
|
"selected": "background-color: #ffff00",
|
||||||
"sounds": { "alertsound": "$path/alarm.wav" },
|
"loc": [10,0]
|
||||||
"chums": { "style": "border:2px solid yellow; background-color: black;color: white;font: bold;font-family: 'Courier';selection-background-color:#646464; ",
|
},
|
||||||
"loc": [12, 117],
|
"sounds": { "alertsound": "$path/alarm.wav" },
|
||||||
"size": [209, 82],
|
"menus": {"client": {"_name": "CLIENT",
|
||||||
"moods": { "chummy": { "icon": "$path/chummy.gif",
|
"options": "OPTIONS",
|
||||||
"color": "white" },
|
"exit": "EXIT"},
|
||||||
"offline": { "icon": "$path/offline.gif",
|
"profile": {"_name": "PROFILE",
|
||||||
"color": "#646464"},
|
"switch": "SWITCH",
|
||||||
"rancorous": { "icon": "$path/rancorous.gif",
|
"theme": "THEME",
|
||||||
"color": "red" },
|
"quirks": "QUIRKS"},
|
||||||
"detestful": { "icon": "$path/detestful.gif",
|
"rclickchumlist": {"pester": "PESTER",
|
||||||
"color": "red" },
|
"removechum": "REMOVE CHUM"}
|
||||||
"devious": { "icon": "$path/devious.gif",
|
},
|
||||||
"color": "white" },
|
"chums": { "style": "border:2px solid yellow; background-color: black;color: white;font: bold;font-family: 'Courier';selection-background-color:#646464; ",
|
||||||
"discontent": { "icon": "$path/discontent.gif",
|
"loc": [12, 117],
|
||||||
"color": "white" },
|
"size": [209, 82],
|
||||||
"distraught": { "icon": "$path/distraught.gif",
|
"moods": { "chummy": { "icon": "$path/chummy.gif",
|
||||||
"color": "white" },
|
"color": "white" },
|
||||||
"ecstatic": { "icon": "$path/estatic.gif",
|
"offline": { "icon": "$path/offline.gif",
|
||||||
"color": "white" },
|
"color": "#646464"},
|
||||||
"pleasant": { "icon": "$path/pleasant.gif",
|
"rancorous": { "icon": "$path/rancorous.gif",
|
||||||
"color": "white" },
|
"color": "red" },
|
||||||
"relaxed": { "icon": "$path/relaxed.gif",
|
"detestful": { "icon": "$path/detestful.gif",
|
||||||
"color": "white" },
|
"color": "red" },
|
||||||
"sleek": { "icon": "$path/sleek.gif",
|
"devious": { "icon": "$path/devious.gif",
|
||||||
"color": "white" },
|
"color": "white" },
|
||||||
"smooth": { "icon": "$path/smooth.gif",
|
"discontent": { "icon": "$path/discontent.gif",
|
||||||
"color": "white" },
|
"color": "white" },
|
||||||
"unruly": { "icon": "$path/unruly.gif",
|
"distraught": { "icon": "$path/distraught.gif",
|
||||||
"color": "white" }
|
"color": "white" },
|
||||||
}
|
"ecstatic": { "icon": "$path/estatic.gif",
|
||||||
},
|
"color": "white" },
|
||||||
"mychumhandle": { "label": { "text": "CHUMHANDLE:",
|
"pleasant": { "icon": "$path/pleasant.gif",
|
||||||
"loc": [19,232],
|
"color": "white" },
|
||||||
"style": "color: rgba(255, 255, 0, 0%) ; font-family: 'Courier';" },
|
"relaxed": { "icon": "$path/relaxed.gif",
|
||||||
"handle": { "style": "background: black; padding: 3px; color:white; font-family:'Courier'; font:bold; text-align:left;",
|
"color": "white" },
|
||||||
"loc": [14,246],
|
"sleek": { "icon": "$path/sleek.gif",
|
||||||
"size": [190, 21] },
|
"color": "white" },
|
||||||
"colorswatch": { "loc": [196,246],
|
"smooth": { "icon": "$path/smooth.gif",
|
||||||
"size": [23,21],
|
"color": "white" },
|
||||||
"text": "" }
|
"unruly": { "icon": "$path/unruly.gif",
|
||||||
},
|
"color": "white" }
|
||||||
"defaultwindow": { "style": "background: #fdb302; font-family:'Courier';font:bold;selection-background-color:#919191; "
|
}
|
||||||
},
|
},
|
||||||
"addchum": { "style": "background: rgba(255, 255, 0, 0%); border:2px solid #c48a00; font: bold; color: rgba(0, 0, 0, 0%); font-family:'Courier';",
|
"mychumhandle": { "label": { "text": "CHUMHANDLE:",
|
||||||
"loc": [12,202],
|
"loc": [19,232],
|
||||||
"size": [71, 22],
|
"style": "color: rgba(255, 255, 0, 0%) ;font:bold; font-family: 'Courier';" },
|
||||||
"text": "ADD CHUM"
|
"handle": { "style": "background: black; padding: 3px; color:white; font-family:'Courier'; font:bold; text-align:left;",
|
||||||
},
|
"loc": [14,246],
|
||||||
"pester": { "style": "background: rgba(255, 255, 0, 0%); border:2px solid #c48a00; font: bold; color: rgba(255, 255, 0, 0%); font-family:'Courier';",
|
"size": [190, 21] },
|
||||||
"loc": [150,202],
|
"colorswatch": { "loc": [196,246],
|
||||||
"size": [71, 22],
|
"size": [23,21],
|
||||||
"text": "PESTER!"
|
"text": "" }
|
||||||
},
|
},
|
||||||
"defaultmood": "chummy",
|
"defaultwindow": { "style": "background: #fdb302; font-family:'Courier';font:bold;selection-background-color:#919191; "
|
||||||
"moodlabel": { "style": "",
|
},
|
||||||
"loc": [20, 4300],
|
"addchum": { "style": "background: rgba(255, 255, 0, 0%); border:2px solid #c48a00; font: bold; color: rgba(0, 0, 0, 0%); font-family:'Courier';",
|
||||||
"text": "MOODS"
|
"loc": [12,202],
|
||||||
},
|
"size": [71, 22],
|
||||||
"moods": [
|
"text": "ADD CHUM"
|
||||||
{ "style": "text-align:left; background: yellow; border:2px solid #c48a00; padding: 5px;color:#000000; font-family:'Courier'",
|
},
|
||||||
"selected": "text-align:left; background: yellow; border:2px solid #c48a00; padding: 5px;color:#000000; font-family:'Courier'; font:bold; font-size:9pt;",
|
"pester": { "style": "background: rgba(255, 255, 0, 0%); border:2px solid #c48a00; font: bold; color: rgba(255, 255, 0, 0%); font-family:'Courier';",
|
||||||
"loc": [12, 288],
|
"loc": [150,202],
|
||||||
"size": [104, 22],
|
"size": [71, 22],
|
||||||
"text": "CHUMMY",
|
"text": "PESTER!"
|
||||||
"icon": "$path/chummy.gif",
|
},
|
||||||
"mood": "chummy"
|
"defaultmood": 0,
|
||||||
},
|
"moodlabel": { "style": "",
|
||||||
{ "style": "text-align:left; background: yellow; border:2px solid #c48a00; padding: 5px;color:#000000; font-family:'Courier'",
|
"loc": [20, 430],
|
||||||
"selected": "text-align:left; background: yellow; border:2px solid #c48a00; padding: 5px;color:#000000; font-family:'Courier'; font: bold; font-size:9pt;",
|
"text": "MOODS"
|
||||||
"loc": [12, 308],
|
},
|
||||||
"size": [104, 22],
|
"moods": [
|
||||||
"text": "PALSY",
|
{ "style": "text-align:left; border:2px solid #c48a00; padding: 5px;color: rgba(0, 0, 0, 0%); font-family:'Courier'",
|
||||||
"icon": "$path/chummy.gif",
|
"selected": "text-align:left; background-image:url($path/moodcheck1.gif); border:2px solid #c48a00; padding: 5px;color: rgba(0, 0, 0, 0%); font-family:'Courier';",
|
||||||
"mood": "pleasant.gif"
|
"loc": [12, 288],
|
||||||
},
|
"size": [104, 22],
|
||||||
{ "style": "text-align:left; background: yellow; border:2px solid #c48a00; padding: 5px;color:#000000; font-family:'Courier'",
|
"text": "CHUMMY",
|
||||||
"selected": "text-align:left; background: yellow; border:2px solid #c48a00; padding: 5px;color:#000000; font-family:'Courier';font: bold; font-size:9pt;",
|
"icon": "$path/chummy.gif",
|
||||||
"loc": [12, 328],
|
"mood": 0
|
||||||
"size": [104, 22],
|
},
|
||||||
"text": "CHIPPER",
|
{ "style": "text-align:left; border:2px solid #c48a00; padding: 5px;color: rgba(0, 0, 0, 0%); font-family:'Courier'",
|
||||||
"icon": "$path/chummy.gif",
|
"selected": "text-align:left; background-image:url($path/moodcheck2.gif); border:2px solid #c48a00; padding: 5px;color: rgba(0, 0, 0, 0%); font-family:'Courier';",
|
||||||
"mood": "distraught"
|
"loc": [12, 308],
|
||||||
},
|
"size": [104, 22],
|
||||||
{ "style": "text-align:left; background: yellow; border:2px solid #c48a00; padding: 5px;color:#000000; font-family:'Courier'",
|
"text": "PALSY",
|
||||||
"selected": "text-align:left; background: yellow; border:2px solid #c48a00; padding: 5px;color:#000000; font-family:'Courier'; font-size:9pt; font: bold;",
|
"icon": "$path/chummy.gif",
|
||||||
"loc": [117, 288],
|
"mood": 3
|
||||||
"size": [104, 22],
|
},
|
||||||
"text": "BULLY",
|
{ "style": "text-align:left; border:2px solid #c48a00; padding: 5px;color: rgba(0, 0, 0, 0%); font-family:'Courier'",
|
||||||
"icon": "$path/chummy.gif",
|
"selected": "text-align:left; background-image:url($path/moodcheck3.gif); border:2px solid #c48a00; padding: 5px;color: rgba(0, 0, 0, 0%); font-family:'Courier';",
|
||||||
"mood": "unruly"
|
"loc": [12, 328],
|
||||||
},
|
"size": [104, 22],
|
||||||
{ "style": "text-align:left; background: yellow; border:2px solid #c48a00; padding: 5px;color:#000000; font-family:'Courier'",
|
"text": "CHIPPER",
|
||||||
"selected": "text-align:left; background: yellow; border:2px solid #c48a00; padding: 5px;color:#000000; font-family:'Courier';font: bold; font-size:9pt;",
|
"icon": "$path/chummy.gif",
|
||||||
"loc": [117, 308],
|
"mood": 4
|
||||||
"size": [104, 22],
|
},
|
||||||
"text": "PEPPY",
|
{ "style": "text-align:left; border:2px solid #c48a00; padding: 5px;color: rgba(0, 0, 0, 0%); font-family:'Courier'",
|
||||||
"icon": "$path/chummy.gif",
|
"selected": "text-align:left; background-image:url($path/moodcheck2.gif); border:2px solid #c48a00; padding: 5px;color: rgba(0, 0, 0, 0%); font-family:'Courier';",
|
||||||
"mood": "smooth"
|
"loc": [117, 288],
|
||||||
},
|
"size": [104, 22],
|
||||||
{ "style": "text-align:left; background: red; border:2px solid #c48a00; padding: 5px;color:#FFFFFF; font-family:'Courier'",
|
"text": "BULLY",
|
||||||
"selected": "text-align:left; background: red; border:2px solid #c48a00; padding: 5px;color:#FFFFFF; font-family:'Courier';font: bold; font-size:9pt;",
|
"icon": "$path/chummy.gif",
|
||||||
"loc": [117, 328],
|
"mood": 5
|
||||||
"size": [104, 22],
|
},
|
||||||
"text": "RANCOROUS",
|
{ "style": "text-align:left; border:2px solid #c48a00; padding: 5px;color: rgba(0, 0, 0, 0%); font-family:'Courier'",
|
||||||
"icon": "$path/rancorous.gif",
|
"selected": "text-align:left; background-image:url($path/moodcheck2.gif); border:2px solid #c48a00; padding: 5px;color: rgba(0, 0, 0, 0%); font-family:'Courier';",
|
||||||
"mood": 1
|
"loc": [117, 308],
|
||||||
},
|
"size": [104, 22],
|
||||||
{ "style": "text-align:center; background: black; border:2px solid #c48a00; padding: 5px;color:#646464; font-family:'Courier'",
|
"text": "PEPPY",
|
||||||
"selected": "text-align:center; background: black; border:2px solid #c48a00; padding: 5px;color:#646464; font-family:'Courier';font: bold; font-size:9pt;",
|
"icon": "$path/chummy.gif",
|
||||||
"loc": [12, 348],
|
"mood": 6
|
||||||
"size": [209, 22],
|
},
|
||||||
"text": "ABSCOND",
|
{ "style": "text-align:left; border:2px solid #c48a00; padding: 5px;color: rgba(0, 0, 0, 0%); font-family:'Courier'",
|
||||||
"icon": "$path/offline.gif",
|
"selected": "text-align:left; background-image:url($path/moodcheck4.gif); border:2px solid #c48a00; padding: 5px;color: rgba(0, 0, 0, 0%); font-family:'Courier';",
|
||||||
"mood": 2
|
"loc": [117, 328],
|
||||||
}
|
"size": [104, 22],
|
||||||
]
|
"text": "RANCOROUS",
|
||||||
},
|
"icon": "$path/rancorous.gif",
|
||||||
"convo":
|
"mood": 1
|
||||||
{"style": "background: #fdb302; border:2px solid yellow; font-family: 'Courier'",
|
},
|
||||||
"size": [295, 191],
|
{ "style": "text-align:left; border:2px solid #c48a00; padding: 5px;color: rgba(0, 0, 0, 0%); font-family:'Courier'",
|
||||||
"chumlabel": { "style": "background: rgb(196, 138, 0);" },
|
"selected": "text-align:left; background-image:url($path/moodcheck5.gif); border:2px solid #c48a00; padding: 5px;color: rgba(0, 0, 0, 0%); font-family:'Courier';",
|
||||||
"textarea": {
|
"loc": [12, 348],
|
||||||
"style": "background: white; font:bold; border:2px solid #c48a00;"
|
"size": [209, 22],
|
||||||
},
|
"text": "ABSCOND",
|
||||||
"input": {
|
"icon": "$path/x.gif",
|
||||||
"style": "background: white; border:2px solid #c48a00;"
|
"mood": 2
|
||||||
},
|
}
|
||||||
"tabs": {
|
]
|
||||||
"style": "",
|
},
|
||||||
"newmsgcolor": "#fdb302",
|
"convo":
|
||||||
"tabstyle": 0
|
{"style": "background: #fdb302; border:2px solid yellow; font-family: 'Courier'",
|
||||||
}
|
"size": [295, 191],
|
||||||
}
|
"chumlabel": { "style": "background: rgb(196, 138, 0); color: white; text-align:center;",
|
||||||
|
"text" : ":: $handle ::" },
|
||||||
}
|
"textarea": {
|
||||||
|
"style": "background: white; font:bold; border:2px solid #c48a00;text-align:center;"
|
||||||
|
},
|
||||||
|
"input": {
|
||||||
|
"style": "background: white; border:2px solid #c48a00;"
|
||||||
|
},
|
||||||
|
"tabs": {
|
||||||
|
"style": "",
|
||||||
|
"newmsgcolor": "#fdb302",
|
||||||
|
"tabstyle": 0
|
||||||
|
},
|
||||||
|
"text": {
|
||||||
|
"beganpester": "began pestering",
|
||||||
|
"ceasepester": "ceased pestering"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
|
@ -10,9 +10,21 @@
|
||||||
"loc": [255, 0]},
|
"loc": [255, 0]},
|
||||||
"menubar": { "style": "font-family: 'Courier New'; font-weight: bold; font-size: 12px;" },
|
"menubar": { "style": "font-family: 'Courier New'; font-weight: bold; font-size: 12px;" },
|
||||||
"menu" : { "style": "font-family: 'Courier New'; font-weight: bold; font-size: 12px; background-color: #e5000f; border:2px solid #ff0000",
|
"menu" : { "style": "font-family: 'Courier New'; font-weight: bold; font-size: 12px; background-color: #e5000f; border:2px solid #ff0000",
|
||||||
"selected": "background-color: #ff0000"
|
"selected": "background-color: #ff0000",
|
||||||
|
"menuitem": "margin-right:10px;",
|
||||||
|
"loc": [10,0]
|
||||||
},
|
},
|
||||||
"sounds": { "alertsound": "$path/alarm.wav" },
|
"sounds": { "alertsound": "$path/alarm.wav" },
|
||||||
|
"menus": {"client": {"_name": "GRUBBER",
|
||||||
|
"options": "OPTIONS",
|
||||||
|
"exit": "ABSCOND"},
|
||||||
|
"profile": {"_name": "HEMOSPECTRUM",
|
||||||
|
"switch": "SWITCH",
|
||||||
|
"theme": "THEME",
|
||||||
|
"quirks": "ANNOYING"},
|
||||||
|
"rclickchumlist": {"pester": "TROLL",
|
||||||
|
"removechum": "REMOVE LOSER"}
|
||||||
|
},
|
||||||
"chums": { "style": "background-color: black;color: white;font: bold;font-family: 'Courier New';selection-background-color:#ffb6b6; ",
|
"chums": { "style": "background-color: black;color: white;font: bold;font-family: 'Courier New';selection-background-color:#ffb6b6; ",
|
||||||
"loc": [20, 65],
|
"loc": [20, 65],
|
||||||
"size": [266, 270],
|
"size": [266, 270],
|
||||||
|
@ -66,7 +78,7 @@
|
||||||
"size": [100, 40],
|
"size": [100, 40],
|
||||||
"text": "TROLL"
|
"text": "TROLL"
|
||||||
},
|
},
|
||||||
"defaultmood": "ecstatic",
|
"defaultmood": 7,
|
||||||
"moodlabel": { "style": "",
|
"moodlabel": { "style": "",
|
||||||
"loc": [20, 430],
|
"loc": [20, 430],
|
||||||
"text": "MOODS"
|
"text": "MOODS"
|
||||||
|
@ -78,7 +90,7 @@
|
||||||
"size": [133, 30],
|
"size": [133, 30],
|
||||||
"text": "ECSTATIC",
|
"text": "ECSTATIC",
|
||||||
"icon": "$path/estatic.gif",
|
"icon": "$path/estatic.gif",
|
||||||
"mood": "ecstatic"
|
"mood": 7
|
||||||
},
|
},
|
||||||
{ "style": "text-align:left; background: black; border:3px solid black; padding: 5px;color: #dbdbdb",
|
{ "style": "text-align:left; background: black; border:3px solid black; padding: 5px;color: #dbdbdb",
|
||||||
"selected": "text-align:left; background: white; border:3px solid black; padding: 5px;font: bold;",
|
"selected": "text-align:left; background: white; border:3px solid black; padding: 5px;font: bold;",
|
||||||
|
@ -86,7 +98,7 @@
|
||||||
"size": [133, 30],
|
"size": [133, 30],
|
||||||
"text": "RELAXED",
|
"text": "RELAXED",
|
||||||
"icon": "$path/relaxed.gif",
|
"icon": "$path/relaxed.gif",
|
||||||
"mood": "relaxed"
|
"mood": 8
|
||||||
},
|
},
|
||||||
{ "style": "text-align:left; background: black; border:3px solid black; padding: 5px;color:#dbdbdb;",
|
{ "style": "text-align:left; background: black; border:3px solid black; padding: 5px;color:#dbdbdb;",
|
||||||
"selected": "text-align:left; background: white; border:3px solid black; padding: 5px;font: bold;",
|
"selected": "text-align:left; background: white; border:3px solid black; padding: 5px;font: bold;",
|
||||||
|
@ -94,7 +106,7 @@
|
||||||
"size": [133, 30],
|
"size": [133, 30],
|
||||||
"text": "DISCONTENT",
|
"text": "DISCONTENT",
|
||||||
"icon": "$path/discontent.gif",
|
"icon": "$path/discontent.gif",
|
||||||
"mood": "discontent"
|
"mood": 9
|
||||||
},
|
},
|
||||||
{ "style": "text-align:left; background: black; border:3px solid black; padding: 5px;color:#dbdbdb;",
|
{ "style": "text-align:left; background: black; border:3px solid black; padding: 5px;color:#dbdbdb;",
|
||||||
"selected": "text-align:left; background: white; border:3px solid black; padding: 5px;font: bold;",
|
"selected": "text-align:left; background: white; border:3px solid black; padding: 5px;font: bold;",
|
||||||
|
@ -102,7 +114,7 @@
|
||||||
"size": [133, 30],
|
"size": [133, 30],
|
||||||
"text": "DEVIOUS",
|
"text": "DEVIOUS",
|
||||||
"icon": "$path/devious.gif",
|
"icon": "$path/devious.gif",
|
||||||
"mood": "devious"
|
"mood": 10
|
||||||
},
|
},
|
||||||
{ "style": "text-align:left; background: black; border:3px solid black; padding: 5px;color:#dbdbdb;",
|
{ "style": "text-align:left; background: black; border:3px solid black; padding: 5px;color:#dbdbdb;",
|
||||||
"selected": "text-align:left; background: white; border:3px solid black; padding: 5px;font: bold;",
|
"selected": "text-align:left; background: white; border:3px solid black; padding: 5px;font: bold;",
|
||||||
|
@ -110,7 +122,7 @@
|
||||||
"size": [133, 30],
|
"size": [133, 30],
|
||||||
"text": "SLEEK",
|
"text": "SLEEK",
|
||||||
"icon": "$path/sleek.gif",
|
"icon": "$path/sleek.gif",
|
||||||
"mood": "sleek"
|
"mood": 11
|
||||||
},
|
},
|
||||||
{ "style": "text-align:left; background: red; border:3px solid black; padding: 5px;",
|
{ "style": "text-align:left; background: red; border:3px solid black; padding: 5px;",
|
||||||
"selected": "text-align:left; background: red; border:3px solid black; padding: 5px;font: bold;",
|
"selected": "text-align:left; background: red; border:3px solid black; padding: 5px;font: bold;",
|
||||||
|
@ -118,7 +130,7 @@
|
||||||
"size": [133, 30],
|
"size": [133, 30],
|
||||||
"text": "DETESTFUL",
|
"text": "DETESTFUL",
|
||||||
"icon": "$path/detestful.gif",
|
"icon": "$path/detestful.gif",
|
||||||
"mood": "detestful"
|
"mood": 12
|
||||||
},
|
},
|
||||||
{ "style": "text-align:center; background: #919191; border:3px solid black; padding: 5px;",
|
{ "style": "text-align:center; background: #919191; border:3px solid black; padding: 5px;",
|
||||||
"selected": "text-align:center; background: #919191; border:3px solid black; padding: 5px;font: bold;",
|
"selected": "text-align:center; background: #919191; border:3px solid black; padding: 5px;font: bold;",
|
||||||
|
@ -126,14 +138,16 @@
|
||||||
"size": [263, 30],
|
"size": [263, 30],
|
||||||
"text": "ABSCOND",
|
"text": "ABSCOND",
|
||||||
"icon": "$path/offline.gif",
|
"icon": "$path/offline.gif",
|
||||||
"mood": "offline"
|
"mood": 2
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
"convo":
|
"convo":
|
||||||
{"style": "background: #e5000f; font-family: 'Courier New'",
|
{"style": "background: #e5000f; font-family: 'Courier New'",
|
||||||
"size": [600, 500],
|
"size": [600, 500],
|
||||||
"chumlabel": { "style": "background: rgba(255, 255, 255, 25%);" },
|
"chumlabel": { "style": "background: rgba(255, 255, 255, 25%);",
|
||||||
|
"text" : "trolling $handle"
|
||||||
|
},
|
||||||
"textarea": {
|
"textarea": {
|
||||||
"style": "background: white;font:bold;"
|
"style": "background: white;font:bold;"
|
||||||
},
|
},
|
||||||
|
@ -144,6 +158,10 @@
|
||||||
"style": "",
|
"style": "",
|
||||||
"newmsgcolor": "red",
|
"newmsgcolor": "red",
|
||||||
"tabstyle": 0
|
"tabstyle": 0
|
||||||
|
},
|
||||||
|
"text": {
|
||||||
|
"beganpester": "began trolling",
|
||||||
|
"ceasepester": "gave up trolling"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|