Preparing for release

This commit is contained in:
Yusur 2019-11-05 17:03:58 +01:00
parent 7ede351b11
commit c57088c6c3
4 changed files with 12 additions and 6 deletions

View file

@ -1,6 +1,6 @@
# Changelog # Changelog
## 0.7-dev ## 0.7.0
* Biggest change: unpacking modules. The single `app.py` file has become an `app` package, with submodules `models.py`, `utils.py`, `filters.py`, `website.py` and `ajax.py`. There is also a new module `api.py`. * Biggest change: unpacking modules. The single `app.py` file has become an `app` package, with submodules `models.py`, `utils.py`, `filters.py`, `website.py` and `ajax.py`. There is also a new module `api.py`.
* Now `/about/` shows Python and Flask versions. * Now `/about/` shows Python and Flask versions.
@ -12,6 +12,7 @@
* Corrected a bug into `pwdhash`: it accepted an argument, but pulled data from the form instead of processing it. Now it uses the argument. * Corrected a bug into `pwdhash`: it accepted an argument, but pulled data from the form instead of processing it. Now it uses the argument.
* Schema changes: added column `telegram` to `UserProfile` table. To update schema, execute the script `migrate_0_6_to_0_7.py` * Schema changes: added column `telegram` to `UserProfile` table. To update schema, execute the script `migrate_0_6_to_0_7.py`
* Adding public API. Each of the API endpoints take a mandatory query string argument: the access token, generated by a separate endpoint at `/get_access_token` and stored into the client. All API routes start with `/api/V1`. Added endpoints `feed`, `create`, `profile_info`, `profile_feed` and `profile_search`. * Adding public API. Each of the API endpoints take a mandatory query string argument: the access token, generated by a separate endpoint at `/get_access_token` and stored into the client. All API routes start with `/api/V1`. Added endpoints `feed`, `create`, `profile_info`, `profile_feed` and `profile_search`.
* Planning to release mobile app for Android.
## 0.6.0 ## 0.6.0

View file

@ -20,7 +20,7 @@ import datetime, time, re, os, sys, string, json, html
from functools import wraps from functools import wraps
from flask_login import LoginManager from flask_login import LoginManager
__version__ = '0.7-dev' __version__ = '0.7.0'
# we want to support Python 3 only. # we want to support Python 3 only.
# Python 2 has too many caveats. # Python 2 has too many caveats.

View file

@ -1,7 +1,8 @@
from flask import Blueprint, jsonify, request from flask import Blueprint, jsonify, request
import sys, datetime, re import sys, datetime, re
from functools import wraps from functools import wraps
from .models import User, Message, Relationship from .models import User, Message, Relationship, \
MSGPRV_PUBLIC, MSGPRV_UNLISTED, MSGPRV_FRIENDS, MSGPRV_ONLYME
from .utils import check_access_token, Visibility from .utils import check_access_token, Visibility
bp = Blueprint('api', __name__, url_prefix='/api/V1') bp = Blueprint('api', __name__, url_prefix='/api/V1')
@ -108,6 +109,8 @@ def get_relationship_info(self, other):
def profile_info(self, userid): def profile_info(self, userid):
if userid == 'self': if userid == 'self':
user = self user = self
elif userid.startswith('+'):
user = User.get(User.username == userid[1:])
elif userid.isdigit(): elif userid.isdigit():
try: try:
user = User[userid] user = User[userid]
@ -135,6 +138,8 @@ def profile_info(self, userid):
def profile_feed(self, userid): def profile_feed(self, userid):
if userid == 'self': if userid == 'self':
user = self user = self
elif userid.startswith('+'):
user = User.get(User.username == userid[1:])
elif userid.isdigit(): elif userid.isdigit():
user = User[userid] user = User[userid]
else: else:
@ -163,10 +168,10 @@ def profile_search(self):
results = [] results = []
for result in query: for result in query:
profile = result.profile profile = result.profile
result.append({ results.append({
"id": result.id, "id": result.id,
"username": result.username, "username": result.username,
"full_name": result.profile.full_name, "full_name": profile.full_name,
"followers_count": len(result.followers()) "followers_count": len(result.followers())
}) })
return { return {

View file

@ -149,7 +149,7 @@ class Message(BaseModel):
# even if unlisted # even if unlisted
return not is_public_timeline return not is_public_timeline
elif privacy == MSGPRV_FRIENDS: elif privacy == MSGPRV_FRIENDS:
if cur_user is None: if cur_user.is_anonymous:
return False return False
return user.is_following(cur_user) and cur_user.is_following(user) return user.is_following(cur_user) and cur_user.is_following(user)
else: else: