Проекты


В последнее время меня заинтересовала P2P валюта Bitcoin. Я и раньше про нее слышал, но интерес возник после волны публикаций на хабре.

Оказалось, что для биткойна уже есть несколько агрегаторов платежей. На основе одного из них (mybitcoin.com) я набросал сервис для оплаты за телефоны за BTC. В принципе можно прикрутить оплату чего угодно (то, что можно полатить за электронную наличность), но ограничусь пока телефонами.

Сейчас обработка проходит вручную - после оплаты на сайте мне приходи письмо и смска с информацией об оплате, после чего я вручную плачу. При интересе к сервису прикручу автооплату.

Комиссия сервиса пока 15%, дальше посмотрим. Курс от mtgox.com*официальный курс доллара.

Ссылки по теме:
Что такое Bitcoin
Как работает Bitcoin
Как добыть Bitcoin
CQTreeGridView - расширение для стандартного CGridView, для работы с моделями, расширенными YiiExt Nested set behaviour. Для визуального отображения используется плагин для jQuery treeTable, для перетаскивания - jQuery ui.



Работа по перемещению веток с помощью drag-and-drop. Потомка сделать корнем можно.

В расширении уже есть типовые actions, которые можно подключить. Или взять за основу для своих.

Внутри архива уже есть нужные jQuery ui и jQuery treeTable. jQuery treeTable немного изменен.

Использование:
- Сгенерировать модель, crud. Избавиться от упоминаний id, leftkey, rightkey И level в модели и формах.
- Cкачать YiiExt Nested set behaviour, следуя инструкциям расширить модель. Если Выбрали режим с одним корнем - вставить вручную запись с id=1, level=1, leftKey=1, rightKey=2. В модели сделать публичное свойство parentId.
- Добавить в метод search сортировку по полю root (если есть) и leftkey. Если все делали по инструкции, то этой строчкой:
        $criteria->order = $this->tree->hasManyRoots
                           ?$this->tree->rootAttribute . ', ' . $this->tree->leftAttribute
                           :$this->tree->leftAttribute;

- Скачать CQTreeGridView, положить в extensions.
- Во вью admin вместо виджета zii.widgets.grid.CGridView использовать ext.QTreeGridView.CQTreeGridView , добавить опцию 'ajaxUpdate' => false.
- добавить в контроллер:
    public $CQtreeGreedView  = array (
        'modelClassName' => 'Page2', //название класса
        'adminAction' => 'admin' //action, где выводится QTreeGridView. Сюда будет идти редирект с других действий.
    );

- добавить типовые действия в контроллер:
    public function actions() {
        return array (
            'create'=>'ext.QTreeGridView.actions.Create',
            'update'=>'ext.QTreeGridView.actions.Update',
            'delete'=>'ext.QTreeGridView.actions.Delete',
            'moveNode'=>'ext.QTreeGridView.actions.MoveNode',
            'makeRoot'=>'ext.QTreeGridView.actions.MakeRoot',
        );
    }


Скачать расширение 77
Переделал свой старый скрипт для фолловинга в twitter в связи с авторизацией по oauth.

Как работает скрипт
  1. Ищет авторов сообщений, содержащих ключевые слова, заданные в настройках.
  2. Фолловит этих авторов (в настройках задается количество фолловингов за раз).
  3. Если по истечению определенного времени (задается в настройках) человек не заволловил Вас в ответ, расфолловит его (также есть настройка по расфолловингу всех).

Еще несколько нюансов работы
  • Все твиплы, которых скрипт зафолловил запоминаются - таким образом одного твипла скрипт будет фолловить только 1 раз.
  • Все уже зафолловинные твиплы через время, указанное в настройках также рассфоловятся, если они не зафолловили Вас.

Требования к хостингу
  • Поддержка PHP, CURL, желателен Cron.

Установка и настройка
  1. Завести аккаунт в твиттере, заполнить биографию, написать штук 10 сообщений.
  2. Распаковать архив, проставить права доступа 777.
  3. Войти в твиттер под аккаунтам, под которым будет работать скрипт.
  4. Зайти на http://dev.twitter.com/apps/new
  5. Зарегистрировать приложение, от имени которого будет работать скрипт. Application Type - выбрать "Client". Default Access type - выбрать "Read & Write"
  6. Consumer key и Consumer secret из просмотра приложения занести в файлик options.php
  7. Access Token (oauth_token) и Access Token Secret (oauth_token_secret) раздела My Access Token приложения занести в файлик options.php
  8. Заполнить при желании другие настройки в файлике options.php.
  9. Поставить на крон вызов скрипта twifollower.php.

Скачать скрипт 321
У меня в репозиторий был изначально помещен весь Zend Framework. Чтобы не таскать везде еще и изменения ZF, я вынес его за рабочую папку, из репозитория удалил. Единственным способом удаления и истории файлов ZF является конвертация mercurial репозитория в mercurial репозиторий:)

Вот тут http://mercurial.selenic.com/wiki/ConvertExtension уже все подробно написано.

Что сделал я для своего случая:

1. Прописал подключение Convert extension в файле настроек:
[extensions]
hgext.convert=

Файлы настроек mercurial могут называться по-разному и находиться в разных местах:
(Unix) $HOME/.hgrc
(Windows) %USERPROFILE%\.hgrc
(Windows) %USERPROFILE%\Mercurial.ini
(Windows) %HOME%\.hgrc
(Windows) %HOME%\Mercurial.ini

2. Создал текстовый файл (1.txt), в нем написал:
exclude library/Zend

3. hg convert --filemap 1.txt www www2
Скрипт выводит сводную информацию по пользователям twitter в виде вот такой таблички:



Будет полезен владельцам ферм twitter-ботов и просто интересующимся :)

Для установки необходимо распаковать архив, в файле twistats.php указать нужных пользователей по аналогии с уже имеющимися, залить на хостинг и открыть в браузере.

Скачать скрипт 103