Просто из желания протестировать полюбившийся мне уже так сильно Windows Live Writer и из-за недостатка материала я решила выложить написанный мною несколько недель назад плагин для xmpp-muc бота Talisman (Als привет!:) написанном на языке питон. Пригодится знакомым с этим ботом людям, реализует аналогичный функционал бота глюкса, показывает, когда человек с определённым ником или жидом был в конференции последний раз. Так как бот не использует базу данных (это его плюс и минус одновременно) после рестарта бот теряет значения. В будущем большие планы по превращению этого всё-таки во что-то более социальное (выдачи всех ников, с которыми был пользователь, количество сообщений отправленных юзверем за время активности бота), но пока это чисто seen плагин.
1: #===istalismanplugin===
2: # -*- coding: utf-8 -*-
3:
4: # Endless / talisman rev 84+
5: # version 0.5RC2 by Tuarisa
6:
7: seen_stats = {}
8:
9:
10: def handler_leave(groupchat, nick, aff, jid):
11: jid=get_true_jid(groupchat+'/'+nick)
12: seen_stats[jid]=[time.gmtime(), 1, nick]
13:
14:
15: def handler_join(groupchat, nick, aff, jid):
16: jid=get_true_jid(groupchat+'/'+nick)
17: seen_stats[jid]=[time.gmtime(), 0, nick]
18:
19:
20: def handler_seen(type, source, parameters):
21:
22: nicks = GROUPCHATS[source[1]].keys()
23: if not parameters:
24: reply(type, source, u'фигня какая-то')
25: return
26:
27: if not parameters.count('@'):
28:
29: nick=parameters
30: truejid=get_true_jid(source[1]+'/'+nick)
31: if not nick in nicks:
32:
33: reply(type, source, u'Это кто вообще?')
34: return
35: else:
36: truejid=parameters
37: jids=seen_stats.keys()
38:
39: if not truejid in jids:
40: reply(type, source, u'Оно тут было?')
41: return
42: time_now = time.mktime(time.gmtime())
43: time_diff = time_now - time.mktime(seen_stats[truejid][0])
44: if seen_stats[truejid][1]==0:
45: reply(type, source, u'<;' + parameters+u'> зашёл сюда ' + timeElapsed(time_diff) + u' назад с ником <'+ seen_stats[truejid][2] +u'>')
46: return
47:
48: else:
49: reply(type, source, u'<;' + parameters+u'> был тут ' + timeElapsed(time_diff) + u' назад с ником <'+seen_stats[truejid][2]+u'>')
50: return
51:
52:
53:
54:
55:
56:
57: register_leave_handler(handler_leave)
58:
59: register_join_handler(handler_join)
60:
61: register_command_handler(handler_seen, 'seen', ['инфо', 'все'], 10, 'Говорит, когда человек был последний раз в сети', 'seen <nick>', ['seen watcher'])
За разъяснениями кода, вдруг чего, в комментарии. Просьба авторство сохранить. Исходники вообще планировалось не выкладывать, ну уж так вышло.
А теперь для завершения тестирования lightbox плагина и самого клиента (в котором можно прописать автоматическое добавление rel=”lightbox” в изображения!) надо вставить какое-нибудь летнее изображение. Или даже два.
Вам нравится? мне тоже
Теперь у меня абсолютно точно есть целых два Windows-приложения, от которых я никогда не откажусь.