Здравствуйте. Для начала ссылка: https://dpos.space/viz/projects и Github dpos.space и viz-apps.
Добавление проектов и задач стоит 100 VIZ. Это и антиспам и плата за модерацию, т.е. если кто-то заплатит за то, что не является проектом, я удалять буду.
Вместо меня можете быть вы: просто запустите копию viz-apps или скопируйте код, касающийся viz-projects, создайте скрипт и рекламируйте свой шлюз. Либо парсите custom по блокам, добавляя всё подряд (как пожелаете).
Для теста добавил dpos.space и две задачи. Также были повторяющиеся custom, т.к. не с первого раза получалось (были проблемы в новостях и с чем-то ещё).
Из файла js_modules/viz_projects.js репозитория viz-apps
- Функция-обработчик transfer операции, которая выполняется, если логин шлюза совпадает с логином в конфиге (config.json в корне viz-apps), а также если сумма равна сумме из того-же конфига (установлено 100.000 VIZ):
project — добавление проекта:["project",{name, description, image_link, type, category, dev_status, command, site, github}]
task — добавление задачи:
["task",{name, description, mambers, status}]
- Функция-обработчик custom операции:
["update_project",{creator, name, new_name, description, image_link, type, category, dev_status, command, site, github}]
update_task — обновление задачи.
["update_task",{creator, name, new_name, description, mambers, status}]
add_task_member — добавление пользователя в список участников задачи.
["add_task_member",{creator, name}]
— автор и название проекта указывается. Логин участника берётся из первого элемента required_posting_auths (required_posting_auths[0]).
Добавляется, только если в списке меньше 10 пользователей.
delete_task_member — удаление пользователя из списка. На это имеет право сам пользователь, создатель задачи и владелец шлюза. При удалении пользователя удаляются и все материалы, относящиеся к нему.
["delete_task_member",{creator, name, task_member, date}]
— task_member необходимо указывать, т.к. обработка происходит не только в случае отправкой пользователем.
news — добавление или обновление новости. Проверяется, чтоб автор (отправитель) был и создателем проекта, либо находился в списке логинов команды.
Если date есть в json структуре, и новость с такой датой, логином автора и проекта названием с его создателем существует, обновление.
["news", {project_creator, project_name, date, title, description, text, image_link}]
delete_one_news — удаление одной новости.
["delete_one_news",{project_creator, project_name, date}]
(логин берётся от логина отправителя).
working_tasks — ход работы по задаче. Проверяется, что автор есть в списке пользователей, согласившихся на выполнение задачи.
Если есть отчёт по ходу работ с таким логином автора (отправителем), датой, создателем и названием задачи есть, обновление.
["working_tasks", {task_creator, task_name, date, text}]
moderation — модерация. Я не стал делать true или false. Если операция не отправляется, значит проект или задача нормальные.
["moderation",{type, creator, name}]
, где
- type — это тип: project, task.
- add_category — добавить категорию. В данных только name — имя. Также и delete_category, add_type и delete_ttype — удаление типа.
Всё
Будут вопросы, пишите в чат https://t.me/dpos_space.
С вами был незрячий делегат и разработчик @denis-skripnik.
Наградить автора поста