Make it possible for single Aigents installation configure one Discourse site (like https://community.singularitynet.io), so the following should be possible:
1) Maintain profiles per-user based on what users' like and what they post/comment
2) Maintain connection (with social reports) between users based on what users' like and comment
3) Maintain input for reputation system (in temporal graphs) based on what users' like and comment
4) Provide news monitoring and content extraction for posts under: A) entire site, B) category, C) topic based on what is set as a site, D) user
5) Provide Single Sign On (SSO) for Discourse (1 week?)
Tips:
Data model:
category<-topic<-post(ordered by local numbers within topics)
Add social plugins for the following:
2.1. social analytics and reports (1 weeks, DONE)
2.2. reputation data extraction (1 weeks, DONE)
2.3. reporting and graph visualisation (1 weeks, DONE)
Add plugin for content analysis and news extraction like Reddit or RSS (1 week, DONE)
Refactor Steemit to use the same SocialFeederHelper base class (1 week)
Task:
Make it possible for single Aigents installation configure one Discourse site (like https://community.singularitynet.io), so the following should be possible: 1) Maintain profiles per-user based on what users' like and what they post/comment 2) Maintain connection (with social reports) between users based on what users' like and comment 3) Maintain input for reputation system (in temporal graphs) based on what users' like and comment 4) Provide news monitoring and content extraction for posts under: A) entire site, B) category, C) topic based on what is set as a site, D) user 5) Provide Single Sign On (SSO) for Discourse (1 week?)
Tips:
Data model: category<-topic<-post(ordered by local numbers within topics)
API:
All categories: https://community.singularitynet.io/categories.json Topics in category: https://community.singularitynet.io/c/66.json Get topics: https://community.singularitynet.io/latest.json Get topic with post stream: https://community.singularitynet.io/t/2753.json Get user: https://community.singularitynet.io/users/akolonin.json Get users: https://community.singularitynet.io/admin/users/list/active.json {"errors":["The requested URL or resource could not be found."],"error_type":"not_found"} Get posts: https://community.singularitynet.io/posts.json https://community.singularitynet.io/posts.json?before=8098 Get post: https://community.singularitynet.io/posts/8099.json Get likes: https://meta.discourse.org/t/getting-who-liked-a-post-from-the-api/103618/3 curl 'https://community.singularitynet.io/post_action_users?id=8098&post_action_type_id=2' -H 'Accept: application/json' {"post_action_users":[{"id":118,"username":"Patrik_Gudev","name":null,"avatar_template":"/user_avatar/community.singularitynet.io/patrik_gudev/{size}/430_2.png","post_url":null,"username_lower":"patrik_gudev"},{"id":24,"username":"akolonin","name":null,"avatar_template":"/user_avatar/community.singularitynet.io/akolonin/{size}/146_2.png","post_url":null,"username_lower":"akolonin"}]} Get user actions: curl https://community.singularitynet.io/user_actions.json?username=akolonin https://github.com/discourse/discourse_api/blob/master/lib/discourse_api/api/user_actions.rb action_type: 1 - liked by me 2 - liked by other 3 - unknown TODO? 4 - my topic posts 5 - my reply posts 6 - reply posts on my reply posts (except reply posts on my topic post) TODO? 7 - mentions of me
Work Items
SSO Resources:
https://www.discourse.org/plugins/oauth.html https://meta.discourse.org/t/official-single-sign-on-for-discourse-sso/13045 https://meta.discourse.org/t/using-discourse-as-a-sso-provider/32974 https://www.jokecamp.com/blog/examples-of-creating-base64-hashes-using-hmac-sha256-in-different-languages/#java
API Resources:
Here are some resources to check out for the Discourse API + some extras: https://docs.discourse.org/ for the API https://meta.discourse.org/t/data-explorer-plugin/32566 an official discourse plugin that allows for live database queries https://meta.discourse.org/t/discourse-voting/40121 voting functionalities On badges and communities: https://meta.discourse.org/t/what-are-badges/32540 https://meta.discourse.org/t/how-to-grant-a-custom-badge-through-the-api/103270 (e.g. a badge for creating an aigents feed with x readers perhaps?) Our own badges (using the standard ones: https://community.singularitynet.io/badges https://blog.discourse.org/2018/06/understanding-discourse-trust-levels/ https://meta.discourse.org/t/discourse-moderation-guide/63116 https://blog.discourse.org/2014/08/building-a-discourse-community/ On discobot (although our integration needs a bit more work to make it autogenerated text): https://meta.discourse.org/t/how-to-customize-discobot/103633 https://blog.discourse.org/2017/08/who-is-discobot/ Zapier + Discourse: https://zapier.com/apps/discourse/integrations