Commit Graph

24 Commits

Author SHA1 Message Date
Luna Mendes 6d8af8aef3 Add Quart-CORS 2018-07-06 03:17:38 -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 3258dc94d5 gateway.websocket: implement ZLIB streaming
With this comment we have a proper READY event that can be
successfully parsed by discord.py! hooray for progress!

 - gateway.websocket: add dummy handler for op 1
 - gateway.websocket: change op 0 to op 2
 - storage: fix 'None' strings on channel IDs
 - run: use logbook.compat.redirect_logging()
2018-06-23 20:16:10 -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 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 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
Luna Mendes 3eb6d5e60f litecord: add Storage
Storage serves as a way to reduce code repeatbility. So that we
don't need to keep repeating the same SQL statements over and over,
and to detach some SQL calls into their own code (like guild fetching)

 - gateway.websocket: add WebsocketObjects to hold db, state_manager,
    storage and loop

 - gateway.websocket: add _make_guild_list
 - schema: add members.deafened, members.muted
2018-06-20 16:53:22 -03:00
slice f7d530c787
add a HTTP 500 handler 2018-06-19 18:17:00 -07:00
slice c88148271d
make make_app set app.debug as specified in config 2018-06-19 18:13:13 -07:00
slice efbcbafce4
remove jsonified exception handler 2018-06-19 18:13:03 -07:00
slice ab4857086a
migrate to logbook for logging 2018-06-19 18:04:17 -07:00
slice ff05e278f6
rename state_man -> state_manager 2018-06-19 17:55:23 -07:00
Luna Mendes 6f0528eaec gateway.websocket: detach app object from GatewayWebsocket
It doesn't work since quart's objects only work with stuff
that is already from quart, e.g the current_app stuff
requires you to be inside a special hidden context
that only quart functions get.

Gateway code is detached from quart since quart's websocket
stuff can't handle custom error codes.

 - auth: optional db detach
 - gateway.errors: add InvalidShard, ShardingRequired
 - gateway.gateway: pass asyncpg connection and StateManager
 - gateway.state: add repr, etc
 - gateway.state_man: add remove(), fetch_states()
2018-06-19 21:05:26 -03:00
Luna Mendes 77c5a101c6 gateway.websocket: add basics of identify
- auth: add raw_token_check
 - gateway.gateway: pass the app object to GatewayWebsocket
 - gateway.state: add gen_session_id()
 - gateway: add state_man
2018-06-19 19:09:12 -03: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
slice 6350ff688c
clean 2018-06-16 17:00:08 -07:00
Luna Mendes c11851c4b0 add schema.sql
- add basic config example stuff
2018-06-16 19:25:07 -03:00
Luna Mendes 8961838148 add quart basic 2018-06-16 02:33:16 -03:00