Archive for October, 2008

Кастомные команды django

В джанго есть кастомные команды. Почему-то я открыл их для себя не так давно, о чём жалею. Вся прелесть кастомной команды в том, что она сама настраивает DJANGO_SETTINGS_MODULE. Раньше я делал это руками, что меня изрядно раздражало. А если скрипт лежал ещё и не в корне проекта, то приходилось также пихать в sys.path этот самый корень, что проимпортировать потроха проекта.

Допустим скрипт лежит в %ROOT%/app/bin/script.py. Раньше бы я написал такую кашу в начале этого скрипта:

import sys
import os
from os.path import join, dirname, realpath

sys.path.insert(0, dirname(dirname(realpath(__file__))))
os.environ['DJANGO_SETTINGS_MODULE'] = 'settings']

Как раз эту проблему кастомная команда решает автоматически. Очень удобно оформлять различные скрипты, которые запускаются по крону, в виде кастомных команд.

gozerbot — интересный jabber bot

Сегодня в очередной раз полез в гугль искать бота — пусть даже не на питоне — для повседневных нужд и наткнулся на этого чудо-юдо-гозер-бота Я уже давно хотел запустить какого-нить бота на канал pydev@conference.jabber.ru — пускай там и сидит всего два человека — чтобы логировать конференцию в базу данных. Думаю, с gozerbot всё получится.

Ковырялся с ботом только пару часов — много понравилось:

  • внятная документация на сайте
  • много плагинов
  • можно говорить о неком юзабилити: бот автоматически зарегал аккаунт, когда не смог авторизоваться; плагины можно перезагружать командой; можно всего бота перезапускать; когда я добавил бота на канал pydev, он запомнил это и при следующем запуске сам туда зашёл; можно ставить плагины из удалённого репозитория
  • программа производит впечатление вменяемого творения. Есть такие вещи, как руководство по изготовлению новых плагинов или обзор узловых точек программы.

Признаюсь, я весь пост высосал из пальца… На самом деле я просто хотел поделиться ссылкой на гозербота, но ведь публиковать одну лишь голую ссылку — это совсем неприлично? :-)

UPD: Товарищи гавнооптимизаторы, почему вы срёте ссылками на свой гавносателлиты в этот и только этот пост на блоге? Чем он вас так привлекает? Я удаляю любой комментарий, автор которого ссылается на подозрительный гавносайт. Пожалуйста, не тратье своё и моё время.

Python библиотека для работы с sape.ru

Знаю, знаю, я уже два раза писал, что сделал эту библиотеку. Этот раз, надеюсь, последний :-)

На этот раз я решил сделать порт максимально приближенным к PHP версии: та же структура кода, те же имена переменных, те же форматы данных. Т.к. PHP версия забирает данные с сервера в том виде, как их сериализует PHP, то пришлось заюзать вот эту штуку для распаковки данных.

 

pybb - бодрячком!

Сегодня мои ручки добрались таки до pybb и я смог завершить одно очень важное дело. Раньше при просмотре любого экрана количество запросов к базе данных переваливало за сотню. Сейчас на каждый экран приходится около 10-15 запросов. Это не верх эффективности, но, по крайней мере, такое число уже не заставляет шевелиться волосы на голове :-)