Разработка Liveblogs.space с 9 по 12 октября: изменение профиля, кошелёк и многое другое
Здравствуйте. Каждый день из перечисленных в заголовке собирался написать пост, но затягивало программирование, и было не до отчётов.
1. Изменение профиля:
Позаимствована из Голоса структура json_metadata, а также добавлено кое что новое:
- Интересы, которые работают, как теги. В общем то, на ленту постов по тегу они и ведут;
- Больше соцсетей и мессенджеров: дискорд, Вконтакте, facebook, Skype, Instagram и пр.
- Добавлено это всё в настройках на https://liveblogs.space/profile.html (Заходите и изменяйте, становитесь личностью!);
- Выведена информация на странице пользователя: "о себе", аватарка и имя - сразу видны, а остальная инфа в новом разделе "Подробная информация о пользователе". Пример: @denis-skripnik (Перейдите по ссылке).
Было много нюансов во время разработки, но описывать их здесь не буду. На профиль ушёл весь день 9 октября.
2. Защита от xss:
@ivanzar обратил на это внимание, за что его благодарю:
- Установлен скрипт, который он порекомендовал;
- Сделан белый список тегов, а переменная с ним помещена в view.js, дабы на каждой странице не подключать;
- Добавлено в течение дня множество тегов, которые в начале упустил.
3. Кошелёк:
- Выведены балансы: viz, shares, делегированное другим, другими вам, сумма и дата следующего вывода, общая сумма вывода.
- Добавлены меню действий: пополнить, вывести, перевести, делегировать, создать инвайт-код;
- До этого создал формы соответствующие этим пунктам;
- В таблице со списком тех, кому вы делегировали, есть кнопка "отменить делегирование";
- При запущенном выводе SHARES отображается кнопка отмены;
- Все действия открываются в модальных (Всплывающих) окнах;
- Меню действий по умолчанию скрыто - можно раскрыть, кликнув на "(действия)";
- При переводе можно отметить галочку "Перевести в SHARES" - другой пользователь в этом случае получит токены в SHARES, а не в VIZ;
- Вы можете сформировать URL платежа. Например, https://liveblogs.space/wallet.html?to=denis-skripnik&memo=платёж
При этом, если вы укажете "кому" и "заметка", будут заполнены соответствующие поля, а также они будут иметь режим "Только чтение"
Если вы укажете ещё и amount=5.000, например, то будут недоступны к изменению все 3 поля.
Вы можете указать любой вариант: с amount и memo, с to и amount, с to и memo, либо какое-то одно поле...
При загрузке страницы сразу появляется модальное окно перевода средств. - Создана история переводов, берётся из get_account_history;
- В кошелёк добавлена кнопка "Сохранить ключ", которая позволяет это сделать локально. Активный ключ сохраняется в браузере в зашифрованном виде, т.е. безопасно;
- В переводах, делегировании, выводе SHARES в VIZ, создании инвайт-кода можно кликнуть на кнопку, которая вставит в поле с суммой максимально возможное значение.
- Пополнение счёта - это пополнение при помощи инвайт-кодов: указываете его, после чего средства поступают в кошелёк!
4. Прочее (Из чата):
- Удалил лишнюю последнюю запятую в образуемой строке в циклах. А именно, теперь без запятой в конце списков интересов, подписок и подписчиков. Если где ещё найдёте, прошу сказать - уберу лишний символ.
- @t3 показал своим постом, что можно опубликовать пост с другим процентом кураторских, и он будет виден на liveblogs. Так как это противоречит идеалогии проекта, была сделана фильтрация ещё и по кураторскому проценту;
- Установил фильтрацию по бенефициарским и кураторским при обращении к посту по прямой ссылке.
Комментарии решил не фильтровать, так как в приложении liveblogs они не являются экономической единицей. В будущем будет фильтр по аккаунтам, если будут боты рассылать различные свои комментарии. - Теперь при указании сначала логина автора поста в бенефициарах, а потом @denis-skripnik, пост тоже виден на liveblogs. Благодаря посту @blackmoon мною эта проблема была замечана;
- У каждой статической страницы есть title. А у пользователей, постов (show.html) и пр. подгружаются они динамически через javascript код;
- Внедрена кнопка "Показать ленту постов со всеми интересами пользователя)", отображающая ленту со всеми интересами (тегами) пользователя;
- Теперь при клике по посту в ленте в адресной строке отображается сразу url поста: show.html?author=login&permlink=post
Где login - автор, post- пермлинк; - После выплаты количество апвотов обнуляется - удалил отображение счётчика, если проголосовавших 0 и выплата прошла. Также переименована фраза "на сумму" в "сумма", чтобы корректно отображалось при отсутствии счётчика апвотов.
- Добавлена в кошелёк кнопка "Проголосовать", по клику на которую происходит установка голоса за делегата @denis-skripnik, а в будущем - за @viz-tower.
Возможно что упустил, но в чате больше ничего не нахожу.
Планы:
- Фильтрация в кошельке переводов на "все", "входящие", "Исходящие".
- Обновление балансов без перезагрузки страницы после выполнения действий;
А далее уже не касающееся кошелька:
- Устранение дублирования постов в рекомендациях и комментариев при ответе;
- Реализовать упоминания децентрализованно;
- Разработать страницу "Подписки" со списком подписок и возможностью отписаться. Либо добавить кнопку в таблицу подписок, если страница публичного профиля относится к авторизованному пользователю;
- Восстановитьь прокрутку ленты при открытии поста,
- Сделать вывод в show.html списка голосовавших, а также корректный вывод формы голосования;
- Центр уведомлений: ответы на комментарии и посты, оценки постов, репосты, упоминания;
- Сделать обновление ленты в Клиенте без перезагрузки страницы;
- Сделать, чтобы была подгрузка постов, т.е. отображалось > 100 постов в ленте;
- Интеграция или создание p2p обменника;
- Создание p2p биржи заказов постов.
Но последние пункты буду реализовывать уже после отдыха в недели две или месяц. Плюс, надо переключиться на другой проект, чтоб интерес не угасал к программированию.
Всё
Буду рад очень вашему отклику в комментариях, постах и личке.
Ссылки:
- Сайт: https://liveblogs.space;
- Github, где вы можете посмотреть код, историю разработки или скачать архив с последними изменениями: https://github.com/denis-skripnik/liveblogs.space
- Telegram чат приложения (Добро пожаловать!):https://t.me/joinchat/FOUyGBCK8C5nh8uyV63WYg
Отобразить форму комментирования
Комментарии