Skip to content

Commit

Permalink
New embed format, also closes #168
Browse files Browse the repository at this point in the history
  • Loading branch information
dylanpdx committed Sep 12, 2024
1 parent bf82e2e commit fd74f70
Show file tree
Hide file tree
Showing 6 changed files with 28 additions and 46 deletions.
26 changes: 19 additions & 7 deletions msgs.py
Original file line number Diff line number Diff line change
Expand Up @@ -8,12 +8,13 @@

videoDescLimit=220
tweetDescLimit=340
providerLimit=220

def genLikesDisplay(vnf):
if vnf['retweets'] > 0:
return ("\n\n💖 " + numerize.numerize(vnf['likes']) + " 🔁 " + numerize.numerize(vnf['retweets']))
return ("💖 " + numerize.numerize(vnf['likes']) + " 🔁 " + numerize.numerize(vnf['retweets']))
else:
return ("\n\n💖 " + numerize.numerize(vnf['likes']))
return ("💖 " + numerize.numerize(vnf['likes']))

def genQrtDisplay(qrt):
verifiedCheck = "☑️" if ('verified' in qrt and qrt['verified']) else ""
Expand All @@ -26,7 +27,18 @@ def genPollDisplay(poll):
output+=choice["name"]+"\n"+("█"*int(choice["percent"]/pctSplit)) +" "+str(choice["percent"])+"%\n"
return output

def formatEmbedDesc(type,body,qrt,pollData,likesDisplay):
# formats the top text of the embed
def formatProvider(base,vnf):
finalText = base
likes = genLikesDisplay(vnf)
finalText += "\n" + likes
if ('communityNote' in vnf and vnf['communityNote'] != None):
finalText += "\n⚠️ Has community note"
if len(finalText) > providerLimit:
finalText = base
return finalText

def formatEmbedDesc(type,body,qrt,pollData):
# Trim the embed description to 248 characters, prioritizing poll and likes

qrtType=None
Expand All @@ -51,16 +63,16 @@ def formatEmbedDesc(type,body,qrt,pollData,likesDisplay):
qrt=None

if type=="" or type=="Video":
output = body+pollDisplay+likesDisplay
output = body+pollDisplay
elif qrt==None:
output= body+pollDisplay+likesDisplay
output= body+pollDisplay
else:
output= body + likesDisplay
output= body
if len(output)>limit:
# find out how many characters we need to remove
diff = len(output)-limit
# remove the characters from body, add ellipsis
body = body[:-(diff+1)]+"…"
return formatEmbedDesc(type,body,qrt,pollData,likesDisplay)
return formatEmbedDesc(type,body,qrt,pollData)
else:
return output
2 changes: 1 addition & 1 deletion templates/image.html
Original file line number Diff line number Diff line change
Expand Up @@ -23,5 +23,5 @@

<meta property="og:description" content="{{ desc }}" />

<link rel="alternate" href="{{ host }}/oembed.json?desc={{ urlUser }}&user=Twitter&link={{ tweetLink }}&ttype=photo&provider={{ appname }}" type="application/json+oembed" title="{{ tweet['user_name'] }}">
<link rel="alternate" href="{{ host }}/oembed.json?desc={{ urlUser }}&user=Twitter&link={{ tweetLink }}&ttype=photo&provider={{ appname|urlencode }}" type="application/json+oembed" title="{{ tweet['user_name'] }}">
<meta http-equiv="refresh" content="1; url = {{ tweetLink }}" /> {% endblock %} {% block body %} Redirecting you to the tweet in a moment. <a href="{{ tweetLink }}">Or click here.</a> {% endblock %}
30 changes: 0 additions & 30 deletions templates/index.html

This file was deleted.

2 changes: 1 addition & 1 deletion templates/text.html
Original file line number Diff line number Diff line change
Expand Up @@ -9,5 +9,5 @@

<meta property="og:description" content="{{ desc }}" />

<link rel="alternate" href="{{ host }}/oembed.json?desc={{ urlUser }}&user=Twitter&link={{ tweetLink }}&ttype=link&provider={{ appname }}" type="application/json+oembed" title="{{ tweet['user_name'] }}">
<link rel="alternate" href="{{ host }}/oembed.json?desc={{ urlUser }}&user=Twitter&link={{ tweetLink }}&ttype=link&provider={{ appname|urlencode }}" type="application/json+oembed" title="{{ tweet['user_name'] }}">
<meta http-equiv="refresh" content="1; url = {{ tweetLink }}" /> {% endblock %} {% block body %} Redirecting you to the tweet in a moment. <a href="{{ tweetLink }}">Or click here.</a> {% endblock %}
2 changes: 1 addition & 1 deletion templates/video.html
Original file line number Diff line number Diff line change
Expand Up @@ -18,5 +18,5 @@
<meta property="og:image" content="{{ media['thumbnail_url'] }}" />
<meta property="og:description" content="{{ desc }}" />

<link rel="alternate" href="{{ host }}/oembed.json?desc={{ urlUser }}&user={{ urlEncodedDesc }}&link={{ tweetLink }}&ttype=video&provider={{ appname }}" type="application/json+oembed" title="{{ tweet['user_name'] }}">
<link rel="alternate" href="{{ host }}/oembed.json?desc={{ urlUser }}&user={{ urlEncodedDesc }}&link={{ tweetLink }}&ttype=video&provider={{ appname|urlencode }}" type="application/json+oembed" title="{{ tweet['user_name'] }}">
<meta http-equiv="refresh" content="1; url = {{ tweetLink }}" /> {% endblock %} {% block body %} Redirecting you to the tweet in a moment. <a href="{{ tweetLink }}">Or click here.</a>{% endblock %}
12 changes: 6 additions & 6 deletions twitfix.py
Original file line number Diff line number Diff line change
Expand Up @@ -76,7 +76,7 @@ def message(text):

def renderImageTweetEmbed(tweetData,image,appnameSuffix=""):
qrt = tweetData['qrt']
embedDesc = msgs.formatEmbedDesc("Image",tweetData['text'],qrt,tweetData['pollData'],msgs.genLikesDisplay(tweetData))
embedDesc = msgs.formatEmbedDesc("Image",tweetData['text'],qrt,tweetData['pollData'])

if image.startswith("https://pbs.twimg.com") and "?" not in image:
image = f"{image}?name=orig"
Expand All @@ -88,12 +88,12 @@ def renderImageTweetEmbed(tweetData,image,appnameSuffix=""):
desc=embedDesc,
urlEncodedDesc=urllib.parse.quote(embedDesc),
tweetLink=f'https://twitter.com/{tweetData["user_screen_name"]}/status/{tweetData["tweetID"]}',
appname=config['config']['appname']+appnameSuffix,
appname=msgs.formatProvider(config['config']['appname']+appnameSuffix,tweetData),
)

def renderVideoTweetEmbed(tweetData,mediaInfo,appnameSuffix=""):
qrt = tweetData['qrt']
embedDesc = msgs.formatEmbedDesc("Video",tweetData['text'],qrt,tweetData['pollData'],msgs.genLikesDisplay(tweetData))
embedDesc = msgs.formatEmbedDesc("Video",tweetData['text'],qrt,tweetData['pollData'])

mediaInfo=fixMedia(mediaInfo)
return render_template("video.html",
Expand All @@ -103,19 +103,19 @@ def renderVideoTweetEmbed(tweetData,mediaInfo,appnameSuffix=""):
desc=embedDesc,
urlEncodedDesc=urllib.parse.quote(embedDesc),
tweetLink=f'https://twitter.com/{tweetData["user_screen_name"]}/status/{tweetData["tweetID"]}',
appname=config['config']['appname']+appnameSuffix,
appname=msgs.formatProvider(config['config']['appname']+appnameSuffix,tweetData),
)

def renderTextTweetEmbed(tweetData,appnameSuffix=""):
qrt = tweetData['qrt']
embedDesc = msgs.formatEmbedDesc("Text",tweetData['text'],qrt,tweetData['pollData'],msgs.genLikesDisplay(tweetData))
embedDesc = msgs.formatEmbedDesc("Text",tweetData['text'],qrt,tweetData['pollData'])
return render_template("text.html",
tweet=tweetData,
host=config['config']['url'],
desc=embedDesc,
urlEncodedDesc=urllib.parse.quote(embedDesc),
tweetLink=f'https://twitter.com/{tweetData["user_screen_name"]}/status/{tweetData["tweetID"]}',
appname=config['config']['appname']+appnameSuffix,
appname=msgs.formatProvider(config['config']['appname']+appnameSuffix,tweetData),
)

@app.route('/robots.txt')
Expand Down

0 comments on commit fd74f70

Please sign in to comment.