-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge pull request #2 from Chenmo1212/develop
Updated Version: Using Flask
- Loading branch information
Showing
1,907 changed files
with
21,244 additions
and
2 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,45 @@ | ||
name: FIKA Reading Deployment | ||
run-name: ${{ github.actor }} is deploying ${{ github.repository }} 🚀 | ||
on: [push] | ||
# pull_request: | ||
# branches: | ||
# - main | ||
# types: | ||
# - closed | ||
jobs: | ||
build: | ||
runs-on: ubuntu-latest | ||
steps: | ||
- name: Step 1 - Check_out-code 🔎 | ||
uses: actions/checkout@v2 | ||
|
||
- name: Step 2 - Deploy to Server 🖥️ | ||
uses: easingthemes/[email protected] | ||
env: | ||
SSH_PRIVATE_KEY: ${{ secrets.PRIVATE_KEY }} | ||
ARGS: "-rltgoDzvO" | ||
SOURCE: "/" | ||
REMOTE_HOST: ${{ vars.REMOTE_HOST }} | ||
REMOTE_USER: 'root' | ||
TARGET: ${{ vars.TARGET }} | ||
|
||
- name: SSH into Server and Start Flask App | ||
uses: appleboy/ssh-action@master | ||
with: | ||
host: ${{ vars.REMOTE_HOST }} | ||
username: root | ||
key: ${{ secrets.PRIVATE_KEY }} | ||
port: 22 | ||
script: | | ||
# Use the lsof command to find the process occupying port 3002 | ||
PID=$(lsof -t -i :3002) | ||
# # If the process is found, kill it | ||
# if [ -n "$PID" ]; then | ||
# kill -9 $PID | ||
# fi | ||
# | ||
# cd ${{ vars.TARGET }} | ||
# npm install | ||
# npm run build | ||
# nohup npm start > ai_resume.log 2>&1 & |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,3 @@ | ||
venv/ | ||
.idea | ||
__pycache__/ |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,78 @@ | ||
import re | ||
|
||
from flask import Flask, abort, render_template, redirect, url_for | ||
import os | ||
import json | ||
import random | ||
|
||
app = Flask(__name__) | ||
|
||
# Define the directory where articles are stored | ||
ARTICLES_DIR = 'articles' | ||
|
||
|
||
def clean_filename(filename): | ||
# Characters not allowed in Windows file names | ||
invalid_chars = r'<>:"/\|?*' | ||
for char in invalid_chars: | ||
filename = filename.replace(char, '') | ||
# Further remove non-printing characters and other possible problem characters | ||
filename = re.sub(r'[^.\w\s-]', '', filename) | ||
# Remove spaces from both sides and make sure the filename is not empty | ||
filename = filename.strip() | ||
# If the file name is empty (or contains only illegal characters), provide a default value | ||
if not filename: | ||
filename = "default_filename" | ||
return filename | ||
|
||
|
||
def load_random_article(articles_dir): | ||
# Get all json files | ||
json_files = [f for f in os.listdir(articles_dir) if f.endswith('.json')] | ||
if not json_files: | ||
return None | ||
|
||
selected_file = random.choice(json_files) | ||
file_path = os.path.join(articles_dir, selected_file) | ||
|
||
with open(file_path, 'r', encoding='utf-8') as file: | ||
article = json.load(file) | ||
return article | ||
|
||
|
||
def load_article(article_id): | ||
file_path = os.path.join(ARTICLES_DIR, f"{article_id}.json") | ||
if not os.path.exists(file_path): | ||
return None | ||
with open(file_path, 'r', encoding='utf-8') as file: | ||
article = json.load(file) | ||
return article | ||
|
||
|
||
@app.route('/') | ||
def random_article(): | ||
article = load_random_article(ARTICLES_DIR) | ||
if article: | ||
article_id = article['title'] | ||
return redirect(url_for('article', article_id=article_id)) | ||
else: | ||
return "No articles found." | ||
|
||
|
||
@app.route('/bookmark') | ||
def bookmark(): | ||
return render_template('bookmark.html') | ||
|
||
|
||
@app.route('/article/<article_id>') | ||
def article(article_id): | ||
clean_article_id = clean_filename(article_id) | ||
article = load_article(clean_article_id) | ||
if article: | ||
return render_template('index.html', **article) | ||
else: | ||
abort(404) # If the article does not exist, a 404 error is returned | ||
|
||
|
||
if __name__ == '__main__': | ||
app.run(debug=True) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,8 @@ | ||
{ | ||
"title": "18本画册的爱恋", | ||
"author": "汤小小", | ||
"content": "<p>这是一对平凡夫妻的故事,如童话一般美好,却让人忍不住潸然泪下。 </p>\n<p>初次相见时,他是一位血气方刚的年轻军人,她是活泼俏皮的时髦女子。他回家探亲,父母着急他的终身大事,便“押”着他去相亲。远远地,看见一个年轻女子站在窗前对镜梳妆,波浪卷,红嘴唇,那一刻,他的心里生出细细的喜悦。 </p>\n<p>有父母和媒婆在场,他和她从始至终也没有说上几句话,临走时,她娇羞地送给他几张照片,含情脉脉地对视一眼,他便知道,她心里也是欢喜的。 </p>\n<p>他们顺理成章地结婚,约好一生相守。只是,婚后的日子却是聚少离多,他长年呆在部队,她一个人操持家务、抚育孩子,一个南,一个北,像两个毫无关联的人。改变却是显而易见的,以前在战场上他从不惧怕死亡,流弹从身边打过也毫不在意,可是现在,他忽然害怕了,如果自己死了,妻子和孩子怎么办?他们指靠谁啊?而她,也迅速从一个时髦女子变成地道的家庭妇女,学会了省吃俭用,连两元钱一包的中药都舍不得买,还像男人婆一样,跑到建筑工地上去挑水泥,赚取家用。 </p>\n<p>他们唯一的联系就是写信。她写的都是些家长里短、鸡毛蒜皮,偶尔,还有一些小抱怨小气恼。无论她写什么,他都笑呵呵地看,然后,把它们好好地收藏起来,哪里有破损,也会拿胶水小心翼翼地粘好。 </p>\n<p>这样的日子一过就是二十年,他先在部队当兵,然后到工厂“劳动改造”,她始终坚守着他们小小的家,等待他归来。 </p>\n<p>终于还是团聚了,只是,隔着二十年的时光,连孩子都要恋爱结婚了,他已不再年轻英俊,她亦不再容颜俏丽,而且生活习惯大相径庭,矛盾总是在所难免。她抱怨他太笨,饭做不好,衣服洗不干净,有时候还会打冷战,好几天不理他,说狠话气他。他从不生气,总是笑呵呵地哄她, </p>\n<p>时光就这样静静地流淌,一日日,一年年,把他们变成白发苍苍的老人。她的脾气越来越古怪,像个喜怒无常的小孩。有时候心情不好,老是莫名其妙地掉眼泪,他看了以为是抑郁症,火急火燎地去拿药,吃了没几天,她马上喜笑颜开,啥事儿都没有了。有时候毫无来由地大吵大闹,搅得一家人不得安宁,个个躲得远远地,而他总是陪在她身边,看着她别被桌角玻璃什么的碰伤。 </p>\n<p>儿孙们知道她是病了,把她送到医院,她却常常拔掉身上的管子,还老说昏话。她说想吃糕点,他就会跑很远的路,穿过好几个街道,为她买来老字号的糕点,可是递到她面前,她又完全忘了这回事。有时候她忽然嘟噜着说,自己那件黑底红花的衣裳到哪儿去了?其实,她根本就没这么件衣服,他听了,却赶紧买布,找裁缝,紧赶慢赶地给她做出来,送到床边…… </p>\n<p>儿孙们都劝他,她已经糊涂了,脑子不好使了,干吗还把她的话当真呢?又花钱又费事,还徒增伤悲。他却不听劝,下回,只要她开口要什么,他还是想方设法给她弄来。即使她已经糊涂了,可是她提的任何要求,他都不忍心拒绝,因为他不糊涂,他知道,他能为她做的已经不多了。 </p>\n<p>她果然闭上眼睛,永远地离开了,她是笑着走的,紧紧拉着他的手。 </p>\n<p>她走了,他觉得自己的心也被掏空了,终于知道,什么叫生离死别。那就是,无论你多么想念一个人,都永远再也见不到了。 </p>\n<p>思念将他牢牢吞噬,60年来相处的点点滴滴,在脑海里不停浮现,她对镜梳妆的模样,她趴在桌前写信的模样,她发脾气的模样,她生气的模样……他找来纸笔,想把她的模样画出来,这样,它们就永远不会从记忆里跑掉,这样,就仿佛看到真实的她,仿佛她还在他面前巧笑嫣然。 </p>\n<p>谁知,这一画就再也无法停下来,原来他和她,竟有那么多的故事可讲啊。从相见,到结婚,到婚后的每一个日日夜夜,居然都有讲不完的故事。 </p>\n<p>他没有学过美术,他的画简单明了,可是寥寥数笔,却把她画得丝毫不差,和真实的人儿一模一样,一样的眉眼,一样的笑容,一样的神情。 </p>\n<p>画他们相处的点滴,他觉得还不够,在没有遇见他之前,她是什么模样?她会干些什么?他的笔,蘸着满腔的爱和思念,居然描绘出了她童年和少女时代的影像。 </p>\n<p>儿孙们怕他一大把年纪,天天俯着身子画画,对健康不好,想要带他出去旅游,他却只到一个地方,那是他和她当初结婚的旅行社,他独自一人,站在当年两个人一起站过的地方,留下一张“旧地重游”的照片。他甚至不上网,不碰电脑,他怕被别的事情牵绊,就没有时间画画了。 </p>\n<p>如今,他已年过九旬,他的画册也已经有了18本之多,他为它们取名《我俩的故事》。每天,他都在画画中倾诉对她的思念,在画画中与她进行灵魂交谈。他枕着这些画入眠,同时伴着他的,还有她的一缕白发,以及她的骨灰。 </p>\n<p>他有一个普通的名字,饶平如,她的名字很美,叫美棠。他说,等他死了,就和她的骨灰装在一个盒子里,多余的撒向大海,这将是他最完美的结局。</p>", | ||
"text_num": 1870, | ||
"date": "2022-07-26 08:00", | ||
"content_hash": "ffbe6ce56a1d2f51ebcd6029d2356cc544f4e51995cd96acd413e06afb908823" | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,8 @@ | ||
{ | ||
"title": "1905年5月3日", | ||
"author": "阿兰·莱特曼", | ||
"content": "<p>设想一个因果错乱的世界。有时一先于二,有时二先于一。也许,因总在过去,果长在将来,但将来和过去却纠缠不清。 </p>\n<p>从蓬特斯高台望去,景色壮丽:阿尔卑斯山直插入天,阿勒河行于地。此刻有位男子站在那儿,茫茫然掏空衣袋,伤心哭着。朋友们无缘无故地抛弃了他。再没人约他吃晚饭下酒馆,邀他来家里作客。二十年来他一直都是个理想的朋友:大方,有情趣,有爱心,和颜悦色。究竟发生了什么?距此一个星期在这高台上,同一个人开始乱来,逢人便得罪,一毛不拔,乱头粗服,劳喷大街他的公寓谁都不让去。哪个是将来,哪个是过去?哪个是因,哪个是果? </p>\n<p>在苏黎世议会最近通过了严格的法令,禁止向公众出售枪支。银行商号都要定期查账。来访者,无论走利马特的水路,还是走塞尔拿的铁道,都要搜一搜看是否在偷运军火。保安力量增加了一倍。严打之后一个月,苏黎世发生了空前的恶性犯罪,青天白日下瓦因广场人被杀,空斯特艺术馆画被盗,缪斯托教堂里觥筹交错。没准这些罪行时间上错了位?或许新法令反倒是肇事者? </p>\n<p>一位年轻女子坐在植物园的喷泉附近。她每星期天都来这儿亲近白色紫罗兰、麝香野蔷薇、粉色桂竹香。忽然间,她的心儿飘,脸儿烧,步履浮躁,无由地欢喜。数日后,她遇见一位小伙子,爱得死去活来。两件事难道无关?要是有,又是凭的哪种奇怪关系、错乱时序、颠倒因缘? </p>\n<p>在这个无因果的世界里,科学家算是无望了。他们的预报都成了马后炮,他们的推导公式也只起点儿解释说明的作用。合乎逻辑落得个悖乎事理。科学家像上了瘾的赌棍一样信口雌黄,喋喋不休。科学家成了小丑,倒不是因为他们理性,而是因为宇宙不理性。也许不是因为宇宙不理性,而是因为他们理性。谁又能说谁是谁不是,在这无因果的世界里? </p>\n<p>在这个世界里,艺术家可乐了。他们绘画、音乐和小说的生命就在于出其不意。他们喜欢预测不到、解释不了的事情,喜欢怀旧梦寻。 </p>\n<p>多数人都学会了如何生活在此刻。既然过去对现在的影响根本说不准,那就别管过去。既然现在对于将来没多大要紧,那就用不着三思而后行。每一行动都是时间的岛屿,评说全在乎本身。亲人体贴快死的舅舅,不是预备回头接收遗产,而是因为如今爱他。一个人找到份差事,凭的不是好履历,而是求职谈话时的好表现。老板踩一脚伙计便回一拳,因为不必担心将来。这是个心血来潮的世界,是个率情率性的世界。在这个世界里,每个字只就此刻说,每个眼神只一层含意,每回触摸无过去也无将来,每次亲吻除了亲吻还是亲吻。 </p>\n<p>节选自《爱因斯坦的梦》,访问每日一文书架板块可以查看本书。</p>", | ||
"text_num": 1037, | ||
"date": "2022-12-18 08:10", | ||
"content_hash": "704d7b944552f600bff65173b1ae97db7f12884aed9f93e9d40d0425028f68a8" | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,8 @@ | ||
{ | ||
"title": "1905年6月9日", | ||
"author": "阿兰.莱特曼", | ||
"content": "<p>设想人长生不死。 </p>\n<p>听着挺怪,所有城市的人都分成“这会儿”、“待会儿”两类。 </p>\n<p>“待会儿”认为不用急着上大学念二外,牛顿伏尔泰,也不忙晋升恋爱成家养孩儿。这些事情有的是功夫去做。岁月悠悠,什么都能完成,什么都可以等待。再说了,忙中必出乱子。他们的道理谁能说不是?“待会儿”在任何商店路边都能见到。他们步履悠闲,穿戴松垮。他们乐得一阅已翻开的杂志,将家具摆去摆来,聊起天就像树叶飘下地。“待会儿”坐在咖啡馆细品慢尝,议论着生活的各种可能性。 </p>\n<p>“这会儿”以为既然岁月无穷,凡能想到的都不妨做一做。他们要干无数的事业,他们要结无数次婚,改变无数次立场。每个人都将成为律师、瓦匠、作家、会计、画家、大夫、庄稼汉。“这会儿”老是在读新书,琢磨新行当,学习新语种。为了把无限的生活都品尝一遍,他们抓紧时间、从不懈怠。谁又能说他们没道理?“这会儿”也不难找到。他们是咖啡店主、大学教授、医生、护士、政治家以及一坐下便要摇晃腿的角色。他们把各样人生一一经历,唯恐有什么遗漏。两位“这会儿”相遇在采令梅尔喷泉的六边形壁柱前,便要切磋生活,交流信息,偷眼看表。两位“待会儿”在同样的地方邂逅,便沉思明天,遐想后天,眼睛随着水波荡漾。 </p>\n<p>“这会儿”和“待会儿”有一共同之处。因为生命无穷,亲戚也就无数。不独祖父母健在,那曾祖父母、太姨婆婆、高曾伯祖父、老太姑祖母,上溯祖祖辈辈,都活得好好的,等着献计献策。儿子永远逃不出爹的影子,女儿也躲不开娘的荫护。没有一个人独立自主。 </p>\n<p>一个人要干件事儿,先得征询父母、祖父母、列祖列宗的意见,以免走弯路。新事不新鲜。老辈子什么没试过,而且什么都做成了。不过代价是有的。在这样一个世界里,增大的成就多少被缩小的抱负所分割。 </p>\n<p>女儿从妈那儿得到的,只能是稀释了的教导。因为妈上有妈,逐级请教上去,便是无穷无尽。儿女固然自做不了主张,父母又何尝能说出肯定的意见。父母不是信心的源泉。源泉有千千万。 </p>\n<p>如果每一举措都要论证千万次,生活便成了实验。桥架到河心断然截住,楼盖了九层从此露天。食品店一会儿卖鳕鱼牛肉,过会儿卖生姜咸盐,心眼儿一动就改,提个建议便换,话没有说完整的,婚约维持到婚礼头两天。人在街上三步一反顾,看是不是被人瞧见。 </p>\n<p>长生不老是如此代价。谁都不完整,谁也不自在。到后来,有些人想通了,要想活,唯有死。人一死,便卸下过去的重担。这一小伙人由亲人目送,投人康斯坦茨湖,或是跳下莱马峰,一了那没完没了的生命。就这样,有限战胜了无限,千万年输给一闭眼,千万场雪输给没雪天,千万声教诲输给无言。 </p>\n<p>摘自《爱因斯坦的梦》</p>", | ||
"text_num": 1070, | ||
"date": "2020-09-22 09:10", | ||
"content_hash": "6b4091260aa17a68f53e7550ce3d1eea1c595458e2a543e142b1d6ef5cbe7586" | ||
} |
Oops, something went wrong.