Commit Graph

237 Commits

Author SHA1 Message Date
Luna Mendes 624eb6eb0e blueprints.users: use Storage.get_user_settings
paving the way for user settings support.

 - storage: add Storage.get_user_settings
 - storage: add methods to fetch with json/jsonb codecs enabled
2018-09-29 23:10:42 -03:00
Luna Mendes 4841565f14 schema.sql: add user_settings table
rerunning the schema.sql file should get you up and running.

 - add POST /api/v6/users/@me/consent for consent changes (that get
    ignored)
2018-09-29 22:17:10 -03:00
Luna Mendes 993a2f3b08 blueprints.channels: add dummy search route 2018-09-28 20:08:07 -03:00
Luna Mendes 02f2ee6943 Add some lazy loading handling
Mostly adding guild_id to some events. It isn't complete support for
them, but its some of the way there.

 - storage: give guild_id on get_message

 - gateway.websocket: decrease logging for some stuff
    - a debug log for the whole packet is still there for development
       reasons, maybe i'll put it on a config option.

 - gateway.websocket: dispatch an offline presence when the user has no
    connections tied to them anymore
2018-09-28 19:34:50 -03:00
Luna Mendes 37c61466a4 blueprints.channels: fix TYPING_START 2018-09-28 00:08:39 -03:00
Luna Mendes f5db1038eb blueprints.invites: fix typo on get_channel_invites 2018-09-27 23:29:55 -03:00
Luna Mendes 92f6e3cf75 add invite usage
users can now join guilds!

invites:
 - add GET /api/v6/invites/<invite_code>
 - add DELETE /api/v6/invites/<invite_code>
 - add GET /api/v6/guilds/<guild_id>/invites
 - add GET /api/v6/channels/<channel_id>/invites
 - add POST /api/v6/invite/<invite_code>

storage:
 - add verification_level to invites
 - add empty invite.guild.features

gateway.state_manager:
 - add StateManager.user_states
 - give a dummy offline state on guild_states
    - this makes it possible for people to see offline members even when
       those members never logged in (since the would have no state being
       reffered to them)

 - gateway.websocket: use get_member_ids on lazy guild handler
 - auth: add GET /api/v6/auth/consent-required
 - dispatcher: add dispatch_user_guild and dispatch_user
 - run: use Origin header on Access-Control-Allow-Origin
2018-09-27 23:10:30 -03:00
Luna Mendes dc62de37b2 basic invites
- add invites blueprint
 - add POST /api/v6/channels/<channel_id>/invites
 - add GET /api/v6/invites/<invite_code>
 - schema: add INVITE
 - storage: add get_member_ids, get_invite, get_invite_extra,
 get_invite_metadata
2018-09-26 20:29:22 -03:00
Bootsy 8a25c9767e fix script error that would happen randomly 2018-09-26 21:48:51 +00:00
Luna Mendes 3858e20080 Add user notes
- blueprints.users: fix get_other
 - blueprints.users: add dummy get_user_settings,
     patch_current_settings, get_consent, get_harvest and get_library
 - enums: add ExplicitFilter
 - storage: add Storage.fetch_notes
 - schema.sql: add incomplete user_settings table
2018-09-22 20:18:48 -03:00
Luna Mendes 952b66a28c blueprints.{channels, guilds}: use *Type as enums instead of classes 2018-09-10 20:29:04 -03:00
Luna Mendes b323368ffc config: s/WEBSERVER_URL/WEBSOCKET_URL
Also add explanation on how to use WEBSOCKET_URL
2018-07-21 17:19:57 -03:00
Luna Mendes 5e4230bc31 Revert "use ws settings for gateway endpoint"
This reverts commit cb70842280.

WEBSERVER_URL was made for the case where litecord is behind
a reverse proxy (nginx / cloudflare, etc). If the instance
isn't behind a reverse proxy, you can set WEBSERVER_URL to your
own local address.
2018-07-21 17:08:41 -03:00
slice fedfc97c96
make nonces strings 2018-07-21 11:52:37 -07:00
slice db7ea18f09
add voice and science bps 2018-07-21 11:52:21 -07:00
slice 681e35db5a
fix incorrect converters 2018-07-21 09:35:50 -07:00
slice cb70842280
use ws settings for gateway endpoint 2018-07-21 09:35:43 -07:00
slice 491bdf31df
fix incorrect http status code for auth routes 2018-07-21 09:35:35 -07:00
Luna Mendes 7876c4153d blueprints.guilds: add kick/ban related routes
- schema: add voice_region type validator
2018-07-06 17:17:08 -03:00
Luna Mendes 93933fd8f5 add empty webhooks blueprint 2018-07-06 16:07:42 -03:00
Luna Mendes 545d261bdd schema.sql: fix syntax 2018-07-06 02:29:17 -03:00
Luna Mendes 0ca45c781e blueprints.channels: add implementations for some routes
more specifically edit/delete message, and all 3 pin-related routes.

 - snowflake: add snowflake_datetime
2018-07-04 17:40:27 -03:00
Luna Mendes 59127ad197 blueprints.channels: add message sending
It is clunky when sending messages as Atomic, nor we have proper channel
management, but it works.

 - dispatcher: add sub_many
 - errors: add failsafe on LitecordError.message
 - errors: add ChannelNotFound
 - gateway.websocket: add dispatcher to WebsocketObjects
 - schemas: add regexes for mentions
 - storage: add get_channel, get_message
2018-07-03 01:02:26 -03:00
Luna Mendes 4ea3d353b3 litecord.blueprints: add channels blueprint 2018-07-02 05:06:57 -03:00
Luna Mendes 2276308c5d blueprints.guild: use guild_id = role_id on at-everyone's role
- gateway.websocket: add user_ready function
 - storage: add guild_id by default on member roles
 - storage: add get_role_data
 - schema.sql: change default color from 0 to 1
2018-06-23 21:18:19 -03:00
Luna Mendes 21da0e0d3a blueprints.guild: add implementations for more routes
- Pipfile: add Cerberus for data validation
 - blueprints.guilds: add guild_owner_check
 - blueprints.guilds: simplify GUILD_MEMBER_UPDATE dispatch
 - litecord: add schemas.py
 - run: get json of errors
2018-06-23 17:19:22 -03:00
Luna Mendes b0d5a97c36 blueprints.guilds: add GUILD_MEMBER_UPDATE dispatch 2018-06-23 15:19:04 -03:00
Luna Mendes de98d0f609 blueprints.guild: use EventDispatcher
- dispatcher: add sub_guild, unsub_guild, remove_guild, dispatch_guild
 - gateway.state_manager: fix fetch_states
 - gateway.websocket: add current_shard, shard_count to atributes
 - schema: add ON DELETE CASCADE to channel tables
2018-06-21 17:59:08 -03:00
Luna Mendes b085df207d blueprints.guilds: add implementations for some routes
- errors: add NotFound, GuildNotFound
 - storage: add get_member_data_one, get_member_multi
2018-06-21 16:54:23 -03:00
Luna Mendes 183013f8f9 blueprints: add guilds blueprint
- gateway.websocket: merge get_guild and get_guild_extra
 - gateway.websocket: only apply too many shards close when
     guilds > 2500
 - storage: detach state usage
 - storage: fix large calc on get_guild_extra
2018-06-21 03:16:13 -03:00
Luna Mendes f5ea44c8d7 blueprints: add users.py blueprint
- errors: change AuthError to Unauthorized and Forbidden
 - auth: fix bug on token_check
 - storage: add Storage.get_user_guilds
2018-06-20 23:29:30 -03:00
slice e8b29ddd90
general code cleanup
* remove encoding from .encode()/.decode() calls as 'utf-8' is already
  the default
* code cleanup/compactify
2018-06-19 17:53:56 -07:00
slice d41641929c
add ws stuff to example config 2018-06-19 17:52:25 -07:00
Luna Mendes 39d85d1a1a add basis of websockets 2018-06-17 17:07:52 -03:00
Luna Mendes 7e7a6a1aeb blueprints.gateway: add implementations for gateway urls
- config: add DEBUG, IS_SSL, WEBSERVER_URL
    - remove HOST, PORT
 - litecord: add auth module
2018-06-17 14:24:24 -03:00
Luna Mendes f7f387dcf0 litecord.blueprints: add auth blueprint
- Pipfile: add bcrypt and itsdangerous
 - litecord: add errors module
 - litecord: add snowflake module
 - run: add error handlers

 - schema: add UNIQUE constraint to users.email
   - remove users.password_salt
2018-06-17 04:09:29 -03:00
slice 6b066bba05
add base /gateway bp 2018-06-16 17:00:11 -07:00