Abdullah6395 commited on
Commit
a08c80c
·
1 Parent(s): 3ab34cc
Files changed (6) hide show
  1. .gitattributes +0 -35
  2. Dockerfile +14 -0
  3. app.py +24 -0
  4. requirements.txt +6 -0
  5. static/css/style.css +29 -0
  6. templates/index.html +48 -0
.gitattributes DELETED
@@ -1,35 +0,0 @@
1
- *.7z filter=lfs diff=lfs merge=lfs -text
2
- *.arrow filter=lfs diff=lfs merge=lfs -text
3
- *.bin filter=lfs diff=lfs merge=lfs -text
4
- *.bz2 filter=lfs diff=lfs merge=lfs -text
5
- *.ckpt filter=lfs diff=lfs merge=lfs -text
6
- *.ftz filter=lfs diff=lfs merge=lfs -text
7
- *.gz filter=lfs diff=lfs merge=lfs -text
8
- *.h5 filter=lfs diff=lfs merge=lfs -text
9
- *.joblib filter=lfs diff=lfs merge=lfs -text
10
- *.lfs.* filter=lfs diff=lfs merge=lfs -text
11
- *.mlmodel filter=lfs diff=lfs merge=lfs -text
12
- *.model filter=lfs diff=lfs merge=lfs -text
13
- *.msgpack filter=lfs diff=lfs merge=lfs -text
14
- *.npy filter=lfs diff=lfs merge=lfs -text
15
- *.npz filter=lfs diff=lfs merge=lfs -text
16
- *.onnx filter=lfs diff=lfs merge=lfs -text
17
- *.ot filter=lfs diff=lfs merge=lfs -text
18
- *.parquet filter=lfs diff=lfs merge=lfs -text
19
- *.pb filter=lfs diff=lfs merge=lfs -text
20
- *.pickle filter=lfs diff=lfs merge=lfs -text
21
- *.pkl filter=lfs diff=lfs merge=lfs -text
22
- *.pt filter=lfs diff=lfs merge=lfs -text
23
- *.pth filter=lfs diff=lfs merge=lfs -text
24
- *.rar filter=lfs diff=lfs merge=lfs -text
25
- *.safetensors filter=lfs diff=lfs merge=lfs -text
26
- saved_model/**/* filter=lfs diff=lfs merge=lfs -text
27
- *.tar.* filter=lfs diff=lfs merge=lfs -text
28
- *.tar filter=lfs diff=lfs merge=lfs -text
29
- *.tflite filter=lfs diff=lfs merge=lfs -text
30
- *.tgz filter=lfs diff=lfs merge=lfs -text
31
- *.wasm filter=lfs diff=lfs merge=lfs -text
32
- *.xz filter=lfs diff=lfs merge=lfs -text
33
- *.zip filter=lfs diff=lfs merge=lfs -text
34
- *.zst filter=lfs diff=lfs merge=lfs -text
35
- *tfevents* filter=lfs diff=lfs merge=lfs -text
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
Dockerfile ADDED
@@ -0,0 +1,14 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+
2
+ FROM python:3.9
3
+
4
+ RUN useradd -m -u 1000 user
5
+ USER user
6
+ ENV PATH="/home/user/.local/bin:$PATH"
7
+
8
+ WORKDIR /app
9
+
10
+ COPY --chown=user ./requirements.txt requirements.txt
11
+ RUN pip install --no-cache-dir --upgrade -r requirements.txt
12
+
13
+ COPY --chown=user . /app
14
+ CMD ["gunicorn","-b","0.0.0.0:7860","main:app"]
app.py ADDED
@@ -0,0 +1,24 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ from textblob import TextBlob
2
+ from newspaper import Article
3
+ import nltk
4
+ from flask import Flask,render_template,request
5
+ app=Flask(__name__)
6
+ @app.route("/",methods=['GET'])
7
+ def search():
8
+ return render_template("index.html")
9
+ @app.route("/show",methods=["POST"])
10
+ def show():
11
+ url=request.form['link']
12
+ article=Article(url)
13
+ article.download()
14
+ article.parse()
15
+ article.nlp()
16
+ analysis=TextBlob(article.text)
17
+ data=[article.title,article.publish_date,article.authors,article.summary,article.keywords,analysis.polarity]
18
+ return render_template("index.html",data=data)
19
+ if __name__=="__main__":
20
+ app.run(debug=True)
21
+
22
+
23
+
24
+
requirements.txt ADDED
@@ -0,0 +1,6 @@
 
 
 
 
 
 
 
1
+ textblob
2
+ nltk
3
+ newspaper3k
4
+ lxml_html_clean
5
+ flask
6
+ gunicorn
static/css/style.css ADDED
@@ -0,0 +1,29 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ body{
2
+ background-color: aqua;
3
+ }
4
+ #submit{
5
+ width: 100px;
6
+ height: 30px;
7
+ background-color: blue;
8
+ color: white;
9
+ font-size: 13px;
10
+ border-radius: 20px;
11
+ }
12
+ #heading{
13
+ text-align: center;
14
+ }
15
+ .search{
16
+ display: flex;
17
+ justify-content: center;
18
+ }
19
+ #link{
20
+ width:300px;
21
+ height:30px;
22
+ }
23
+ p{
24
+ font-size: 20px;
25
+ }
26
+ .placeholder{
27
+ text-align: center;
28
+ font-size: 100px;
29
+ }
templates/index.html ADDED
@@ -0,0 +1,48 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <!DOCTYPE html>
2
+ <html lang="en">
3
+ <head>
4
+ <meta charset="UTF-8">
5
+ <meta name="viewport" content="width=device-width, initial-scale=1.0">
6
+ <title>Document</title>
7
+ <link rel="stylesheet" href="{{url_for('static',filename='css/style.css')}}">
8
+ </head>
9
+ <body>
10
+ <h1 id="heading">Welcome to my Article Analyzer</h1>
11
+ <div class="search">
12
+ <form action="/show" method="post">
13
+ <input type="text" name="link" id="link" placeholder="Enter link of article">
14
+ <button type="submit" id="submit">Get Summary</button>
15
+ </form>
16
+ </div>
17
+ {%if not data %}
18
+ <p class="placeholder">Enter url to getinfo</p>
19
+ {%else%}
20
+ <h2>Title:</h2>
21
+ <p>{{data[0]}}</p>
22
+ <h2>Publish Date:</h2>
23
+ {%if data[1]!=none%}
24
+ <p>{{data[1]}}</p>
25
+ {%else%}
26
+ <p>Ambigous</p>
27
+ {%endif%}
28
+ <h2>Authors:</h2>
29
+ {%if not data[2] %}
30
+ <p>No authors mentioned</p>
31
+ {%else%}
32
+ <p>{{data[2]}}</p>
33
+ {%endif%}
34
+ <h2>Summary:</h2>
35
+ <p>{{data[3]}}</p>
36
+ <h2>KeyWords:</h2>
37
+ <p>{{data[4]}}</p>
38
+ <h2>Sentiment:</h2>
39
+ {%if data[5]>0 %}
40
+ <p>Positive Article</p>
41
+ {%elif data[5]<0 %}
42
+ <p>Negative Article</p>
43
+ {%else%}
44
+ <p>Neutral Article</p>
45
+ {%endif%}
46
+ {%endif%}
47
+ </body>
48
+ </html>