Заметки по боту Pegas
Материал из Linux Wiki
Перейти к навигацииПерейти к поиску
Сделать переносы в справке, как это было в тестовой версииПродумать более компактный вид списка. Двухстрочный выглядит не очень. Кроме того, в Psi заголовок первой строки выбивается из общей картины (из-за даты и ника)Для обхода момента с Пси - можно первой строкой выдавать заголовок "Список файлов:" или что-то в этом роде. Тогда первый файл будет описываться с новой строки.
На сейчас не работают команды, кроме ls / ls -s и help (в разных вариантах), только в виде "rm *" (Не проверял выполнение, но остальные, похоже, не работают ни в каком виде)Сейчас код среагирует на любую команду, где префикс - существующая команда. Т.е., например, на "ls123123213". Добавить или пробел, или делать строгое сравнение.get в данной реализации бота (с односторонней передачей) не имеет смысла. Может удалить?
Надо ли добавлять базу? Для учета размера, в общем-то, при небольшом количестве файлов вроде и так должно быть все хорошо, а база - лишняя зависимость и усложнение кода.При отмене выгрузки квота не обновляется до следующего загруженного файла, несмотря на наличие загруженного "битого" файла.Т.е., надо обрабатывать обрывы связи и/или отмену.
Сделать возможность задать ресурс JID'а в конфиг-файле.Убрать esc-символы из URL для кириллицы. Выглядит громоздко.Добавить сервисы - ping, версия софта.Уведомление о новых пользователях.Статус-сообщение "Для помощи по боту напиши ? или help".Сделать работу с белым списком JID или серверов.Программа-минимум: массив в конфиг-файле, где любой из элементов может быть или доменом, или полным JID'ом. Для редактирования придется перезапускать бота, но задачу "ограничиться своими серверами" или "разрешить пользоваться только определенным пользователям" это решит.Более продвинутый вариант: редактирование прав "на ходу". Админ-аккаунт и ведение базы, которую админ будет наполнять. Далее бот при каждом обращении будет сверяться с ней. Для админа и пользователя сделать разные уровни справки.- Eugene_K> rain: как это должно выглядеть я всё ещё не понимаю.
- Мой вариант:
- add server.com
- add user@server.com
- Разрешаем серверу/юзеру доступ к боту
- [00:21:12] <rain> Ну и насчет add - сделать еще wildcard (wildcard'ы?). Т.е., add *, чтобы "всем просто пользоваться"
Добавить fallback с IBB.- Сделать Jingle-вариант.
- В идеале, конечно - универсальный вариант, умеющий как SI, так и Jingle и с fallback'ом на IBB.
В справку добавить ссылку на свой архив. Можно скопировать с gs1, в том числе упоминание про index.htmlМожно добавить команду, создающую (с проверкой существования файла) или удаляющую (переименовывающую) index.html с заданным шаблоном. Такой себе переключатель "приватный / публичный" архив.
Добавить подтверждение на удаление всех файловДля контроля доступа - добавить работу по черному списку - команду block. Т.е., "add *" и потом "block someuser@someserver" для того, чтобы разрешить работу всем, кроме отдельного пользователя и/или сервера.Расширить настройки уведомлений админу: например, только новые регистрации или все сообщения (как сейчас). На сейчас немного "шумно".Выдавать текст-заглушку для пользователей без прав (опционально - с отсылкой на JID админа - в стиле "У вас нет прав для пользования ботом, обратитесь к ${ADMIN_JID}). На сейчас бот молча игнорирует команды и непонятно, то ли он не работает, то ли что-то еще.Может стоит сделать расширенную статистику по файлам? Например, отдельная команда - 'ls -l' - и формат, аналогичный обычной такой команде в шелле. Т.е., добавить время загрузки файла и его размер. Особенно размер может быть полезен, когда будешь выискивать, чем занято место у бота.Управление подкаталогами. Новые команды mkdir / rmdir / mv для создания / удаления каталогов и перемещения файлов между ними. Думаю, для простоты достаточно 1-2 (лучше 2) уровней вложенности (больше не нужно для избегания злоупотреблениями, да и реализовывать проще). Для ls сделать обход всех подкаталогов. rm и остальные - дополнить для работы с контентом подкаталогов (т.е., ls выводит полный список файлов с номерами как сейчас, rm по нему может удалить файл в подкаталоге). mv в качестве исходного файла пусть принимает индекс (вряд ли кто-то захочет набирать руками полное имя файла), назначение - подкаталог (на 1 или 2 уровень вложенности).Алиасы без тире: lss (для ls -s) и lsl (для ls -l).Убрать лишние переносы строк в сообщениях бота ("Новый пользователь", подтверждение подписки - как минимум).Для унификации листингов с одним и несколькими файлами, чтобы исключить лишние переносы строк - добавить заголовок "Список файлов:" для ls (и дочерних команд - lss/lsl с длинными вариантами).В lss / ls -s добавить вывод квоты (чтобы не лазить каждый раз в справку за этим).Галерея. Добавить команду album, по которой копировать из каталога бота в каталог пользователя файл index.php. Логику завязать с priv/pub. Т.е., priv создает index.html-заглушку (можно либо удалять в этот момент index.php, либо определить приоритет индексов на стороне веб-сервера), pub удаляет index.html И index.php, album копирует index.php.