add syndicate-to options to micropub submit form
This commit is contained in:
parent
32cdeaa781
commit
92f21aee03
7 changed files with 159 additions and 13 deletions
|
@ -59,6 +59,18 @@ class User(db.Model):
|
||||||
def get_id(self):
|
def get_id(self):
|
||||||
return self.domain
|
return self.domain
|
||||||
|
|
||||||
|
def get_setting(self, key, default=None):
|
||||||
|
if self.settings is None:
|
||||||
|
return default
|
||||||
|
return self.settings.get(key, default)
|
||||||
|
|
||||||
|
def set_setting(self, key, value):
|
||||||
|
if self.settings is None:
|
||||||
|
self.settings = {}
|
||||||
|
else:
|
||||||
|
self.settings = dict(self.settings)
|
||||||
|
self.settings[key] = value
|
||||||
|
|
||||||
def __eq__(self, other):
|
def __eq__(self, other):
|
||||||
if type(other) is type(self):
|
if type(other) is type(self):
|
||||||
return self.domain == other.domain
|
return self.domain == other.domain
|
||||||
|
|
|
@ -11,16 +11,26 @@ $(function(){
|
||||||
function clickShowReplyForm(evt) {
|
function clickShowReplyForm(evt) {
|
||||||
var a = $(this);
|
var a = $(this);
|
||||||
evt.preventDefault();
|
evt.preventDefault();
|
||||||
$(".reply-form", a.parent()).css('display', 'inherit');
|
$(".like-form", a.parent()).hide();
|
||||||
a.css('display', 'none');
|
$(".reply-form", a.parent()).toggle();//css('display', 'inherit');
|
||||||
|
//a.css('display', 'none');
|
||||||
|
}
|
||||||
|
|
||||||
|
function clickShowLikeForm(evt) {
|
||||||
|
var a = $(this);
|
||||||
|
evt.preventDefault();
|
||||||
|
$(".reply-form", a.parent()).hide();
|
||||||
|
$(".like-form", a.parent()).toggle();
|
||||||
|
//a.css('display', 'none');
|
||||||
}
|
}
|
||||||
|
|
||||||
function submitMicropubForm(evt) {
|
function submitMicropubForm(evt) {
|
||||||
evt.preventDefault();
|
evt.preventDefault();
|
||||||
|
|
||||||
var form = $(this);
|
var form = $(this);
|
||||||
|
var replyArea = form.parent();
|
||||||
var endpoint = form.attr('action');
|
var endpoint = form.attr('action');
|
||||||
var responseArea = $('.submit-response', form);
|
var responseArea = $('.micropub-response', replyArea);
|
||||||
|
|
||||||
$.post(
|
$.post(
|
||||||
'/_forward',
|
'/_forward',
|
||||||
|
@ -28,21 +38,26 @@ $(function(){
|
||||||
function(result) {
|
function(result) {
|
||||||
if (Math.floor(result.code / 100) == 2) {
|
if (Math.floor(result.code / 100) == 2) {
|
||||||
responseArea.html('<a target="_blank" href="' + result.location + '">Success!</a>');
|
responseArea.html('<a target="_blank" href="' + result.location + '">Success!</a>');
|
||||||
|
$(".reply-form textarea").val("");
|
||||||
|
$(".reply-form", replyArea).hide();
|
||||||
|
$(".like-form", replyArea).hide();
|
||||||
} else {
|
} else {
|
||||||
responseArea.html('Failure');
|
responseArea.html('Failure');
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
'json'
|
'json'
|
||||||
);
|
);
|
||||||
|
|
||||||
|
|
||||||
responseArea.html('Posting…');
|
responseArea.html('Posting…');
|
||||||
}
|
}
|
||||||
|
|
||||||
function attachListeners() {
|
function attachListeners() {
|
||||||
$(".reply-form").css('display', 'none');
|
$(".reply-form, .like-form").css('display', 'none');
|
||||||
$(".show-reply-form").css('display', 'inline');
|
|
||||||
|
|
||||||
$("#older-link").off('click').click(clickOlderLink);
|
$("#older-link").off('click').click(clickOlderLink);
|
||||||
$(".show-reply-form").off('click').click(clickShowReplyForm);
|
$(".show-reply-form").off('click').click(clickShowReplyForm);
|
||||||
|
$(".show-like-form").off('click').click(clickShowLikeForm);
|
||||||
|
|
||||||
$(".like-form, .reply-form").off('submit').submit(submitMicropubForm);
|
$(".like-form, .reply-form").off('submit').submit(submitMicropubForm);
|
||||||
}
|
}
|
||||||
|
|
|
@ -433,7 +433,7 @@ textarea, input[type="text"], input[type="url"] {
|
||||||
|
|
||||||
.reply-area {
|
.reply-area {
|
||||||
text-align: center; }
|
text-align: center; }
|
||||||
.reply-area a {
|
.reply-area .reply-link {
|
||||||
display: inline-block;
|
display: inline-block;
|
||||||
padding: 0.2em;
|
padding: 0.2em;
|
||||||
border: 1px solid #687D77;
|
border: 1px solid #687D77;
|
||||||
|
@ -450,6 +450,32 @@ button {
|
||||||
form {
|
form {
|
||||||
margin: 1em 0; }
|
margin: 1em 0; }
|
||||||
|
|
||||||
|
.toggle {
|
||||||
|
font-family: sans-serif;
|
||||||
|
background-color: #eee;
|
||||||
|
display: inline-block;
|
||||||
|
border-radius: 4px;
|
||||||
|
padding: 0.2em 2em 0.2em 0.2em; }
|
||||||
|
.toggle input {
|
||||||
|
display: none; }
|
||||||
|
.toggle label {
|
||||||
|
font-weight: inherit;
|
||||||
|
/* override bootstrap */
|
||||||
|
margin: inherit;
|
||||||
|
/* override bootstrap */
|
||||||
|
position: relative;
|
||||||
|
transition: transform 0.1s;
|
||||||
|
cursor: pointer;
|
||||||
|
background-color: #ccc;
|
||||||
|
color: #666;
|
||||||
|
display: inline-block;
|
||||||
|
padding: 0.25em 1em;
|
||||||
|
border-radius: 3.8px; }
|
||||||
|
.toggle input:checked + label {
|
||||||
|
background-color: #337AB7;
|
||||||
|
color: #fff;
|
||||||
|
transform: translateX(1.8em); }
|
||||||
|
|
||||||
@media only screen and (max-width: 800px) {
|
@media only screen and (max-width: 800px) {
|
||||||
article header img {
|
article header img {
|
||||||
vertical-align: text-middle;
|
vertical-align: text-middle;
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
{
|
{
|
||||||
"version": 3,
|
"version": 3,
|
||||||
"mappings": ";;;;;;AAQA,IAAK;EACH,WAAW,EAAE,UAAU;;EACvB,oBAAoB,EAAE,IAAI;;EAC1B,wBAAwB,EAAE,IAAI;;;;;;AAOhC,IAAK;EACH,MAAM,EAAE,CAAC;;;;;;;;;;AAaX;;;;;;;;;;;;OAYQ;EACN,OAAO,EAAE,KAAK;;;;;;AAQhB;;;KAGM;EACJ,OAAO,EAAE,YAAY;;EACrB,cAAc,EAAE,QAAQ;;;;;;;AAQ1B,qBAAsB;EACpB,OAAO,EAAE,IAAI;EACb,MAAM,EAAE,CAAC;;;;;;AAQX;QACS;EACP,OAAO,EAAE,IAAI;;;;;;;AAUf,CAAE;EACA,gBAAgB,EAAE,WAAW;;;;;AAO/B;OACQ;EACN,OAAO,EAAE,CAAC;;;;;;;AAUZ,WAAY;EACV,aAAa,EAAE,UAAU;;;;;AAO3B;MACO;EACL,WAAW,EAAE,IAAI;;;;;AAOnB,GAAI;EACF,UAAU,EAAE,MAAM;;;;;;AAQpB,EAAG;EACD,SAAS,EAAE,GAAG;EACd,MAAM,EAAE,QAAQ;;;;;AAOlB,IAAK;EACH,UAAU,EAAE,IAAI;EAChB,KAAK,EAAE,IAAI;;;;;AAOb,KAAM;EACJ,SAAS,EAAE,GAAG;;;;;AAOhB;GACI;EACF,SAAS,EAAE,GAAG;EACd,WAAW,EAAE,CAAC;EACd,QAAQ,EAAE,QAAQ;EAClB,cAAc,EAAE,QAAQ;;AAG1B,GAAI;EACF,GAAG,EAAE,MAAM;;AAGb,GAAI;EACF,MAAM,EAAE,OAAO;;;;;;;AAUjB,GAAI;EACF,MAAM,EAAE,CAAC;;;;;AAOX,cAAe;EACb,QAAQ,EAAE,MAAM;;;;;;;AAUlB,MAAO;EACL,MAAM,EAAE,QAAQ;;;;;AAOlB,EAAG;EACD,eAAe,EAAE,WAAW;EAC5B,UAAU,EAAE,WAAW;EACvB,MAAM,EAAE,CAAC;;;;;AAOX,GAAI;EACF,QAAQ,EAAE,IAAI;;;;;AAOhB;;;IAGK;EACH,WAAW,EAAE,oBAAoB;EACjC,SAAS,EAAE,GAAG;;;;;;;;;;;;;;AAkBhB;;;;QAIS;EACP,KAAK,EAAE,OAAO;;EACd,IAAI,EAAE,OAAO;;EACb,MAAM,EAAE,CAAC;;;;;;AAOX,MAAO;EACL,QAAQ,EAAE,OAAO;;;;;;;;AAUnB;MACO;EACL,cAAc,EAAE,IAAI;;;;;;;;;AAWtB;;;oBAGqB;EACnB,kBAAkB,EAAE,MAAM;;EAC1B,MAAM,EAAE,OAAO;;;;;;AAOjB;oBACqB;EACnB,MAAM,EAAE,OAAO;;;;;AAOjB;uBACwB;EACtB,MAAM,EAAE,CAAC;EACT,OAAO,EAAE,CAAC;;;;;;AAQZ,KAAM;EACJ,WAAW,EAAE,MAAM;;;;;;;;;AAWrB;mBACoB;EAClB,UAAU,EAAE,UAAU;;EACtB,OAAO,EAAE,CAAC;;;;;;;;AASZ;+CACgD;EAC9C,MAAM,EAAE,IAAI;;;;;;;AASd,oBAAqB;EACnB,kBAAkB,EAAE,SAAS;;EAC7B,eAAe,EAAE,WAAW;EAC5B,kBAAkB,EAAE,WAAW;;EAC/B,UAAU,EAAE,WAAW;;;;;;;AASzB;+CACgD;EAC9C,kBAAkB,EAAE,IAAI;;;;;AAO1B,QAAS;EACP,MAAM,EAAE,iBAAiB;EACzB,MAAM,EAAE,KAAK;EACb,OAAO,EAAE,qBAAqB;;;;;;AAQhC,MAAO;EACL,MAAM,EAAE,CAAC;;EACT,OAAO,EAAE,CAAC;;;;;;AAOZ,QAAS;EACP,QAAQ,EAAE,IAAI;;;;;;AAQhB,QAAS;EACP,WAAW,EAAE,IAAI;;;;;;;AAUnB,KAAM;EACJ,eAAe,EAAE,QAAQ;EACzB,cAAc,EAAE,CAAC;;AAGnB;EACG;EACD,OAAO,EAAE,CAAC;;;;ACxZZ,IAAK;EACD,IAAI,EAAE,iCAAe;EACrB,UAAU,EATA,OAAO;;AAarB,YAAa;EACT,SAAS,EAAE,KAAK;EAChB,MAAM,EAAE,MAAM;;AAGlB,MAAO;EACH,aAAa,EAAE,GAAG;;AAGtB,aAAc;EACV,eAAe,EAAE,IAAI;EACrB,MAAM,EAAE,CAAC;EACT,OAAO,EAAE,CAAC;EACV,KAAK,EAAE,KAAK;EAEZ,gBAAG;IACC,OAAO,EAAE,YAAY;IACrB,OAAO,EAAE,GAAG;;AAIpB,MAAO;EACH,UAAU,EAAE,MAAM;EAClB,MAAM,EAAE,KAAK;EAEb,QAAE;IACE,OAAO,EAAE,KAAK;IACd,gBAAgB,EAtCZ,OAAO;IAuCX,KAAK,EAzCC,OAAO;IA0Cb,MAAM,EAAE,iBAAsB;IAC9B,aAAa,EAAE,GAAG;IAClB,OAAO,EAAE,YAAY;;AAI7B,OAAQ;EACJ,aAAa,EAAE,GAAG;EAClB,UAAU,EA9CD,eAAgB;EA+CzB,gBAAgB,EAAE,KAAK;EACvB,OAAO,EAAE,KAAK;EAEd,WAAK;IACD,SAAS,EAAE,IAAI;EAGnB,cAAO;IAUH,KAAK,EAtEC,OAAO;IAuEb,aAAa,EAAE,iBAAkB;IACjC,aAAa,EAAE,KAAK;IAXpB,kBAAI;MACA,SAAS,EAAE,IAAI;MACf,UAAU,EAAE,IAAI;MAChB,SAAS,EAAE,IAAI;MACf,UAAU,EAAE,IAAI;MAChB,WAAW,EAAE,KAAK;MAClB,KAAK,EAAE,IAAI;MACX,aAAa,EAAE,GAAG;EAO1B,cAAO;IACH,UAAU,EAAE,KAAK;IACjB,aAAa,EAAE,CAAC;EAGpB,UAAG;IACC,SAAS,EAAE,KAAK;IAChB,WAAW,EAAE,IAAI;;AAIzB,KAAM;EACF,WAAW,EAAE,IAAI;EACjB,OAAO,EAAE,YAAY;EACrB,aAAa,EAAE,GAAG;EAClB,SAAS,EAAE,IAAI;;AAGnB,+CAAgD;EAC5C,KAAK,EAAE,IAAI;EACX,MAAM,EAAE,QAAQ;EAEhB,0EAAW;IACP,KAAK,EAAE,GAAG;EAEd,0EAAW;IACP,KAAK,EAAE,GAAG;EAEd,0EAAW;IACP,KAAK,EAAE,GAAG;;AAIlB,WAAY;EACR,UAAU,EAAE,MAAM;EAClB,aAAE;IACE,OAAO,EAAE,YAAY;IACrB,OAAO,EAAE,KAAK;IACd,MAAM,EAAE,iBAAkB;IAC1B,aAAa,EAAE,GAAG;IAClB,gBAAgB,EAjHV,OAAO;IAkHb,eAAe,EAAE,IAAI;IACrB,KAAK,EArHC,OAAO;IAsHb,SAAS,EAAE,IAAI;IACf,UAAU,EAAE,MAAM;;AAI1B,MAAO;EACH,OAAO,EAAE,MAAM;;AAGnB,IAAK;EACD,MAAM,EAAE,KAAK;;AAGjB,yCAA0C;EAG9B,kBAAI;IACA,cAAc,EAAE,WAAW;IAC3B,MAAM,EAAE,OAAO;IACf,OAAO,EAAE,MAAM;IACf,SAAS,EAAE,KAAK;IAChB,UAAU,EAAE,KAAK;IACjB,SAAS,EAAE,OAAO;IAClB,UAAU,EAAE,OAAO",
|
"mappings": "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",
|
||||||
"sources": ["normalize.scss","style.scss"],
|
"sources": ["normalize.scss","style.scss"],
|
||||||
"names": [],
|
"names": [],
|
||||||
"file": "style.css"
|
"file": "style.css"
|
||||||
|
|
|
@ -116,7 +116,7 @@ textarea, input[type="text"], input[type="url"] {
|
||||||
|
|
||||||
.reply-area {
|
.reply-area {
|
||||||
text-align: center;
|
text-align: center;
|
||||||
a {
|
.reply-link {
|
||||||
display: inline-block;
|
display: inline-block;
|
||||||
padding: 0.2em;
|
padding: 0.2em;
|
||||||
border: 1px solid $sirocco;
|
border: 1px solid $sirocco;
|
||||||
|
@ -127,6 +127,9 @@ textarea, input[type="text"], input[type="url"] {
|
||||||
min-width: 50px;
|
min-width: 50px;
|
||||||
text-align: center;
|
text-align: center;
|
||||||
}
|
}
|
||||||
|
.like-form, .reply-form {
|
||||||
|
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
button {
|
button {
|
||||||
|
@ -137,6 +140,39 @@ form {
|
||||||
margin: 1em 0;
|
margin: 1em 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
.toggle {
|
||||||
|
font-family: sans-serif;
|
||||||
|
background-color: #eee;
|
||||||
|
display: inline-block;
|
||||||
|
border-radius: 4px;
|
||||||
|
padding: 0.2em 2em 0.2em 0.2em;
|
||||||
|
|
||||||
|
input {
|
||||||
|
display: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
label {
|
||||||
|
font-weight: inherit; /* override bootstrap */
|
||||||
|
margin: inherit; /* override bootstrap */
|
||||||
|
position: relative;
|
||||||
|
transition: transform 0.1s;
|
||||||
|
cursor: pointer;
|
||||||
|
background-color: #ccc;
|
||||||
|
color: #666;
|
||||||
|
display: inline-block;
|
||||||
|
padding: 0.25em 1em;
|
||||||
|
border-radius: 3.8px;
|
||||||
|
}
|
||||||
|
|
||||||
|
input:checked + label {
|
||||||
|
background-color: #337AB7;
|
||||||
|
color: #fff;
|
||||||
|
transform: translateX(1.8em);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
@media only screen and (max-width: 800px) {
|
@media only screen and (max-width: 800px) {
|
||||||
article {
|
article {
|
||||||
header {
|
header {
|
||||||
|
|
|
@ -2,25 +2,51 @@
|
||||||
{% set replyMethod = settings.get('reply-method') %}
|
{% set replyMethod = settings.get('reply-method') %}
|
||||||
|
|
||||||
{% if replyMethod == 'micropub' and current_user.micropub_endpoint %}
|
{% if replyMethod == 'micropub' and current_user.micropub_endpoint %}
|
||||||
|
|
||||||
|
<a class="reply-link show-like-form" href="#">Like</a>
|
||||||
|
<a class="reply-link show-reply-form" href="#">Reply</a>
|
||||||
|
<br/>
|
||||||
|
|
||||||
<form class="like-form" action="{{ current_user.micropub_endpoint }}" method="POST" style="display:inline">
|
<form class="like-form" action="{{ current_user.micropub_endpoint }}" method="POST" style="display:inline">
|
||||||
<input type="hidden" name="access_token" value="{{current_user.access_token}}"/>
|
<input type="hidden" name="access_token" value="{{current_user.access_token}}"/>
|
||||||
<input type="hidden" name="h" value="entry"/>
|
<input type="hidden" name="h" value="entry"/>
|
||||||
<input type="hidden" name="like-of" value="{{ entry.permalink }}"/>
|
<input type="hidden" name="like-of" value="{{ entry.permalink }}"/>
|
||||||
<button type="submit" class="like-button">Like</button>
|
|
||||||
<span class="submit-response"></span>
|
|
||||||
</form>
|
|
||||||
|
|
||||||
<button class="show-reply-form">Reply</button>
|
{% for target in current_user.get_setting('syndicate-to', []) %}
|
||||||
|
{% set input_id = 'st-like-{}-{}'.format(entry.id, loop.index) %}
|
||||||
|
<div class="toggle">
|
||||||
|
<input id="{{ input_id }}" type="checkbox" name="syndicate-to[]"
|
||||||
|
value="{{ target }}"/>
|
||||||
|
<label for="{{ input_id }}">{{ target | prettify_url }}</label>
|
||||||
|
</div>
|
||||||
|
{% endfor %}
|
||||||
|
|
||||||
|
<br/>
|
||||||
|
<button type="submit" class="like-button">Like</button>
|
||||||
|
</form>
|
||||||
|
|
||||||
<form class="reply-form" action="{{ current_user.micropub_endpoint }}" method="POST">
|
<form class="reply-form" action="{{ current_user.micropub_endpoint }}" method="POST">
|
||||||
<input type="hidden" name="access_token" value="{{current_user.access_token}}"/>
|
<input type="hidden" name="access_token" value="{{current_user.access_token}}"/>
|
||||||
<input type="hidden" name="h" value="entry"/>
|
<input type="hidden" name="h" value="entry"/>
|
||||||
<input type="hidden" name="in-reply-to" value="{{ entry.permalink }}"/>
|
<input type="hidden" name="in-reply-to" value="{{ entry.permalink }}"/>
|
||||||
<textarea name="content"></textarea>
|
<textarea name="content"></textarea>
|
||||||
|
|
||||||
|
{% for target in current_user.get_setting('syndicate-to', []) %}
|
||||||
|
{% set input_id = 'st-reply-{}-{}'.format(entry.id, loop.index) %}
|
||||||
|
<div class="toggle">
|
||||||
|
<input id="{{ input_id }}" type="checkbox" name="syndicate-to[]"
|
||||||
|
value="{{ target }}"/>
|
||||||
|
<label for="{{ input_id }}">{{ target | prettify_url }}</label>
|
||||||
|
</div>
|
||||||
|
{% endfor %}
|
||||||
|
<br/>
|
||||||
|
|
||||||
<button type="submit" class="reply-button">Reply</button>
|
<button type="submit" class="reply-button">Reply</button>
|
||||||
<span class="submit-response"></span>
|
|
||||||
</form>
|
</form>
|
||||||
|
|
||||||
|
<div class="micropub-response">
|
||||||
|
</div>
|
||||||
|
|
||||||
{% elif replyMethod == 'indie-config' %}
|
{% elif replyMethod == 'indie-config' %}
|
||||||
{% for action in settings.get('indie-config-actions', []) %}
|
{% for action in settings.get('indie-config-actions', []) %}
|
||||||
<indie-action with="{{ entry.permalink }}" do="{{ action }}">
|
<indie-action with="{{ entry.permalink }}" do="{{ action }}">
|
||||||
|
|
|
@ -159,6 +159,7 @@ def login_callback(resp):
|
||||||
user.url = resp.me
|
user.url = resp.me
|
||||||
db.session.commit()
|
db.session.commit()
|
||||||
flask_login.login_user(user, remember=True)
|
flask_login.login_user(user, remember=True)
|
||||||
|
update_micropub_syndicate_to()
|
||||||
return flask.redirect(resp.next_url or flask.url_for('.index'))
|
return flask.redirect(resp.next_url or flask.url_for('.index'))
|
||||||
|
|
||||||
|
|
||||||
|
@ -187,9 +188,31 @@ def micropub_callback(resp):
|
||||||
user.micropub_endpoint = resp.micropub_endpoint
|
user.micropub_endpoint = resp.micropub_endpoint
|
||||||
user.access_token = resp.access_token
|
user.access_token = resp.access_token
|
||||||
db.session.commit()
|
db.session.commit()
|
||||||
|
update_micropub_syndicate_to()
|
||||||
return flask.redirect(resp.next_url or flask.url_for('.index'))
|
return flask.redirect(resp.next_url or flask.url_for('.index'))
|
||||||
|
|
||||||
|
|
||||||
|
@flask_login.login_required
|
||||||
|
def update_micropub_syndicate_to():
|
||||||
|
endpt = flask_login.current_user.micropub_endpoint
|
||||||
|
token = flask_login.current_user.access_token
|
||||||
|
if not endpt or not token:
|
||||||
|
return
|
||||||
|
resp = requests.get(endpt, params={
|
||||||
|
'q': 'syndicate-to',
|
||||||
|
}, headers={
|
||||||
|
'Authorization': 'Bearer ' + token,
|
||||||
|
})
|
||||||
|
if resp.status_code // 100 != 2:
|
||||||
|
flask.current_app.logger.warn(
|
||||||
|
'Unexpected response querying micropub endpoint %s: %s',
|
||||||
|
resp, resp.text)
|
||||||
|
return
|
||||||
|
syndicate_tos = urllib.parse.parse_qs(resp.text).get('syndicate-to[]', [])
|
||||||
|
flask_login.current_user.set_setting('syndicate-to', syndicate_tos)
|
||||||
|
db.session.commit()
|
||||||
|
|
||||||
|
|
||||||
@views.route('/deauthorize')
|
@views.route('/deauthorize')
|
||||||
@flask_login.login_required
|
@flask_login.login_required
|
||||||
def deauthorize():
|
def deauthorize():
|
||||||
|
@ -312,6 +335,14 @@ def find_possible_feeds(origin):
|
||||||
return feeds
|
return feeds
|
||||||
|
|
||||||
|
|
||||||
|
@views.app_template_filter()
|
||||||
|
def prettify_url(url):
|
||||||
|
parsed = urllib.parse.urlparse(url)
|
||||||
|
if parsed.path:
|
||||||
|
return parsed.netloc + parsed.path
|
||||||
|
return parsed.netloc
|
||||||
|
|
||||||
|
|
||||||
@views.app_template_global()
|
@views.app_template_global()
|
||||||
def url_for_other_page(page):
|
def url_for_other_page(page):
|
||||||
"""http://flask.pocoo.org/snippets/44/#URL+Generation+Helper
|
"""http://flask.pocoo.org/snippets/44/#URL+Generation+Helper
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue