Mercurial > traipse
comparison plugins/xxnote.py @ 0:4385a7d0efd1 grumpy-goblin
Deleted and repushed it with the 'grumpy-goblin' branch. I forgot a y
author | sirebral |
---|---|
date | Tue, 14 Jul 2009 16:41:58 -0500 |
parents | |
children | 97265586402b |
comparison
equal
deleted
inserted
replaced
-1:000000000000 | 0:4385a7d0efd1 |
---|---|
1 import os | |
2 import orpg.pluginhandler | |
3 | |
4 class Plugin(orpg.pluginhandler.PluginHandler): | |
5 # Initialization subroutine. | |
6 # | |
7 # !self : instance of self | |
8 # !openrpg : instance of the the base openrpg control | |
9 def __init__(self, plugindb, parent): | |
10 orpg.pluginhandler.PluginHandler.__init__(self, plugindb, parent) | |
11 | |
12 # The Following code should be edited to contain the proper information | |
13 self.name = 'Quick Notes' | |
14 self.author = 'Dj Gilcrease' | |
15 self.help = "This plugin lets you take quick notes on a subject" | |
16 self.notes = {} | |
17 | |
18 | |
19 def plugin_enabled(self): | |
20 self.notes = self.plugindb.GetDict("xxnote", "notes", {}) | |
21 | |
22 self.plugin_addcommand('/newnote', self.on_newnote, '{Subject} - Will create a new note subject') | |
23 self.plugin_addcommand('/appendnote', self.on_appendnote, '{Subject}={Note} - Will append a note to {Subject}') | |
24 self.plugin_addcommand('/delnote', self.on_delnote, '{Subject}={Note_id}|all - Will delete {Note_id} from {Subject} or will delete the subject compleatly') | |
25 self.plugin_addcommand('/editnote', self.on_editnote, '{Subject}={Note_id} {Note} - Will replace {Note_id} with {Note} for {Subject}') | |
26 self.plugin_addcommand('/clearnotes', self.on_clearnotes, '- Will clear all of your notes') | |
27 self.plugin_addcommand('/listnotes', self.on_listnotes, '- Will list all of the note subjects you have') | |
28 self.plugin_addcommand('/viewnote', self.on_viewnote, '{Subject} - Will display the notes you have for {Subject}') | |
29 self.plugin_addcommand('/notetonode', self.on_notetonode, '{Subject} - Will create a text node containing your notes for {Subject}') | |
30 self.plugin_addcommand('/notehelp', self.on_notehelp, '- Will Display the help for each command of this plugin!') | |
31 | |
32 | |
33 def plugin_disabled(self): | |
34 self.plugin_removecmd('/newnote') | |
35 self.plugin_removecmd('/appendnote') | |
36 self.plugin_removecmd('/editnote') | |
37 self.plugin_removecmd('/delnote') | |
38 self.plugin_removecmd('/listnotes') | |
39 self.plugin_removecmd('/viewnote') | |
40 self.plugin_removecmd('/notetonode') | |
41 self.plugin_removecmd('/notehelp') | |
42 self.plugin_removecmd('/clearnotes') | |
43 | |
44 def on_newnote(self, cmdargs): | |
45 if len(cmdargs) == 0: | |
46 self.on_notehelp('') | |
47 return | |
48 | |
49 subject = cmdargs | |
50 if not self.notes.has_key(subject): | |
51 self.notes[subject] = [] | |
52 self.plugindb.SetDict("xxnote", "notes", self.notes) | |
53 self.chat.InfoPost("Created new note for " + subject) | |
54 else: | |
55 self.chat.InfoPost("You already have a note with the subject " + subject) | |
56 | |
57 def on_appendnote(self, cmdargs): | |
58 args = cmdargs.split("=",-1) | |
59 if len(args) < 2: | |
60 self.on_notehelp('') | |
61 return | |
62 | |
63 subject = args[0] | |
64 note = args[1] | |
65 if not self.notes.has_key(subject): | |
66 self.notes[subject] = [] | |
67 self.notes[subject].append(note) | |
68 self.plugindb.SetDict("xxnote", "notes", self.notes) | |
69 self.chat.InfoPost("Created new note for " + subject) | |
70 else: | |
71 self.notes[subject].append(note) | |
72 self.plugindb.SetDict("xxnote", "notes", self.notes) | |
73 self.chat.InfoPost("Appended <i>" + note + "</i> to <b>" + subject + "</b>") | |
74 | |
75 self.on_viewnote(subject) | |
76 | |
77 def on_editnote(self, cmdargs): | |
78 args = cmdargs.split("=",-1) | |
79 if len(args) < 2: | |
80 self.on_notehelp('') | |
81 return | |
82 | |
83 s = args[1].find(" ") | |
84 subject = args[0] | |
85 note_id = int(args[1][:s]) | |
86 note = args[1][s:] | |
87 if not self.notes.has_key(subject): | |
88 self.notes[subject] = [] | |
89 self.notes[subject].append(note) | |
90 self.plugindb.SetDict("xxnote", "notes", self.notes) | |
91 self.chat.InfoPost("Created new note for " + subject) | |
92 else: | |
93 self.notes[subject][note_id] = note | |
94 self.plugindb.SetDict("xxnote", "notes", self.notes) | |
95 self.chat.InfoPost("Edited <i>" + str(note_id) + ': ' + note + "</i> to <b>" + subject + "</b>") | |
96 | |
97 self.on_viewnote(subject) | |
98 | |
99 def on_delnote(self, cmdargs): | |
100 args = cmdargs.split("=",-1) | |
101 if len(args) < 2: | |
102 self.on_notehelp('') | |
103 return | |
104 | |
105 subject = args[0] | |
106 noteid = args[1] | |
107 | |
108 if noteid == 'all': | |
109 del self.notes[subject] | |
110 self.plugindb.SetDict("xxnote", "notes", self.notes) | |
111 self.chat.InfoPost("Removed subject " + subject) | |
112 else: | |
113 del self.notes[subject][int(noteid)] | |
114 self.plugindb.SetDict("xxnote", "notes", self.notes) | |
115 self.chat.InfoPost("Removed note " + noteid + " from subject " + subject) | |
116 self.on_viewnote(subject) | |
117 | |
118 def on_clearnotes(self, cmdargs): | |
119 self.notes = {} | |
120 self.plugindb.SetDict("xxnote", "notes", self.notes) | |
121 self.chat.InfoPost("Cleared all of your notes") | |
122 | |
123 def on_listnotes(self, cmdargs): | |
124 if len(self.notes) == 0: | |
125 self.chat.InfoPost("You have no notes at this time, use /newnote to create one") | |
126 return | |
127 self.chat.InfoPost("The subjects you have notes on are:") | |
128 for subject in self.notes.keys(): | |
129 self.chat.InfoPost("** " + subject) | |
130 | |
131 def on_viewnote(self, cmdargs): | |
132 if len(cmdargs) == 0: | |
133 self.on_notehelp('') | |
134 return | |
135 | |
136 subject = cmdargs | |
137 if self.notes.has_key(subject): | |
138 msg = '<table bgcolor="#cccccc"><tr><td colspan="2"><b><font color="#000000">Notes for ' | |
139 msg += subject | |
140 msg += ':</font></b></td></tr><tr><td width="10">ID</td><td>Note Text</td></tr>' | |
141 noteid = 0 | |
142 for n in self.notes[subject]: | |
143 msg += '<tr><td width="10"><font color="#000000">' | |
144 msg += str(noteid) | |
145 msg += '</font></td>' | |
146 msg += '<td><font color="#000000">' | |
147 msg += n | |
148 msg += '</font></td></tr>' | |
149 noteid += 1 | |
150 | |
151 msg += '</table>' | |
152 self.chat.InfoPost(msg) | |
153 else: | |
154 self.chat.InfoPost("You have no notes for " + subject) | |
155 | |
156 def on_notetonode(self, cmdargs): | |
157 if len(cmdargs) == 0: | |
158 self.on_notehelp('') | |
159 return | |
160 | |
161 subject = cmdargs | |
162 if self.notes.has_key(subject): | |
163 node = '<nodehandler class="textctrl_handler" icon="note" module="forms" name="' | |
164 node += subject | |
165 node += '" version="1.0"><text multiline="1" send_button="1">' | |
166 for note in self.notes[subject]: | |
167 node += note + "\n" | |
168 node += '</text></nodehandler>' | |
169 self.gametree.insert_xml(node) | |
170 else: | |
171 self.chat.InfoPost("You have no notes for " + subject) | |
172 | |
173 def on_notehelp(self, cmdargs): | |
174 self.chat.InfoPost('/newnote ' + self.cmdlist['/newnote']['help']) | |
175 self.chat.InfoPost('/appendnote ' + self.cmdlist['/appendnote']['help']) | |
176 self.chat.InfoPost('/delnote ' + self.cmdlist['/delnote']['help']) | |
177 self.chat.InfoPost('/listnotes ' + self.cmdlist['/listnotes']['help']) | |
178 self.chat.InfoPost('/clearnotes ' + self.cmdlist['/clearnotes']['help']) | |
179 self.chat.InfoPost('/notetonode ' + self.cmdlist['/notetonode']['help']) | |
180 self.chat.InfoPost('/viewnote ' + self.cmdlist['/viewnote']['help']) |