Skip to content

Commit 1e87946

Browse files
committed
v1.8.1: Improve on SEO: add favicon rule as googlebot continuously sends requests for it
1 parent 3387fd5 commit 1e87946

File tree

13 files changed

+211
-39
lines changed

13 files changed

+211
-39
lines changed
Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
---
2+
name: Feature request
3+
about: Suggest an idea for this project
4+
title: ''
5+
labels: ''
6+
assignees: ''
7+
8+
---
9+
10+
**Is your feature request related to a problem? Please describe.**
11+
A clear and concise description of what the problem is. Ex. I'm always frustrated when [...]
12+
13+
**Describe the solution you'd like**
14+
A clear and concise description of what you want to happen.
15+
16+
**Describe alternatives you've considered**
17+
A clear and concise description of any alternative solutions or features you've considered.
18+
19+
**Additional context**
20+
Add any other context or screenshots about the feature request here.

CODE_OF_CONDUCT.md

Lines changed: 76 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,76 @@
1+
# Contributor Covenant Code of Conduct
2+
3+
## My Pledge
4+
5+
In the interest of fostering an open and welcoming environment, I as the
6+
maintainer pledge to making participation in my project and
7+
my community a harassment-free experience for everyone, regardless of age, body
8+
size, disability, ethnicity, sex characteristics, gender identity and expression,
9+
level of experience, education, socio-economic status, nationality, personal
10+
appearance, race, religion, or sexual identity and orientation.
11+
12+
## My Standards
13+
14+
Examples of behavior that contributes to creating a positive environment
15+
include:
16+
17+
* Using welcoming and inclusive language
18+
* Being respectful of differing viewpoints and experiences
19+
* Gracefully accepting constructive criticism
20+
* Focusing on what is best for the community
21+
* Showing empathy towards other community members
22+
23+
Examples of unacceptable behavior by participants include:
24+
25+
* The use of sexualized language or imagery and unwelcome sexual attention or
26+
advances
27+
* Trolling, insulting/derogatory comments, and personal or political attacks
28+
* Public or private harassment
29+
* Publishing others' private information, such as a physical or electronic
30+
address, without explicit permission
31+
* Other conduct which could reasonably be considered inappropriate in a
32+
professional setting
33+
34+
## My Responsibilities
35+
36+
Project maintainers are responsible for clarifying the standards of acceptable
37+
behavior and are expected to take appropriate and fair corrective action in
38+
response to any instances of unacceptable behavior.
39+
40+
Project maintainers have the right and responsibility to remove, edit, or
41+
reject comments, commits, code, wiki edits, issues, and other contributions
42+
that are not aligned to this Code of Conduct, or to ban temporarily or
43+
permanently any contributor for other behaviors that they deem inappropriate,
44+
threatening, offensive, or harmful.
45+
46+
## Scope
47+
48+
This Code of Conduct applies both within project spaces and in public spaces
49+
when an individual is representing the project or its community. Examples of
50+
representing a project or community include using an official project e-mail
51+
address, posting via an official social media account, or acting as an appointed
52+
representative at an online or offline event. Representation of a project may be
53+
further defined and clarified by project maintainers.
54+
55+
## Enforcement
56+
57+
Instances of abusive, harassing, or otherwise unacceptable behavior may be
58+
reported by contacting the project team at [email protected]. All
59+
complaints will be reviewed and investigated and will result in a response that
60+
is deemed necessary and appropriate to the circumstances. The project team is
61+
obligated to maintain confidentiality with regard to the reporter of an incident.
62+
Further details of specific enforcement policies may be posted separately.
63+
64+
Project maintainers who do not follow or enforce the Code of Conduct in good
65+
faith may face temporary or permanent repercussions as determined by other
66+
members of the project's leadership.
67+
68+
## Attribution
69+
70+
This Code of Conduct is adapted from the [Contributor Covenant][homepage], version 1.4,
71+
available at https://www.contributor-covenant.org/version/1/4/code-of-conduct.html
72+
73+
[homepage]: https://www.contributor-covenant.org
74+
75+
For answers to common questions about this code of conduct, see
76+
https://www.contributor-covenant.org/faq

Dockerfile

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -16,10 +16,14 @@ WORKDIR /opt/app
1616
# This is only for testing purposes as $PORT is automatically set by Heroku
1717
#ENV PORT 5000
1818

19-
# Environment variables that need to be set locally
20-
# to retrieve the bar-chart races from mongoDB
21-
#ENV COLLECTION_NAME changeme
22-
#ENV MONGO_URI changeme
19+
# Database-related env vars: will need to be set on Heroku
20+
ENV MONGO_URI changeme
21+
ENV BAR_CHART_COLLECTION changeme
22+
ENV NATIONAL_DATA_COLLECTION changeme
23+
ENV REGIONAL_DATA_COLLECTION changeme
24+
ENV PROVINCIAL_DATA_COLLECTION changeme
25+
ENV LATEST_REGIONAL_DATA_COLLECTION changeme
26+
ENV LATEST_PROVINCIAL_DATA_COLLECTION changeme
2327

2428
# Run the app. CMD is required to run on Heroku
2529
CMD gunicorn --bind 0.0.0.0:$PORT wsgi:app

LICENSE

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
MIT License
2+
3+
Copyright (c) 2020 Fabrizio Miano
4+
5+
Permission is hereby granted, free of charge, to any person obtaining a copy
6+
of this software and associated documentation files (the "Software"), to deal
7+
in the Software without restriction, including without limitation the rights
8+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9+
copies of the Software, and to permit persons to whom the Software is
10+
furnished to do so, subject to the following conditions:
11+
12+
The above copyright notice and this permission notice shall be included in all
13+
copies or substantial portions of the Software.
14+
15+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21+
SOFTWARE.

app/__init__.py

Lines changed: 15 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -18,16 +18,17 @@ def create_app():
1818
app.config["MONGO_URI"] = MONGO_URI
1919
mongo.init_app(app)
2020
babel = Babel(app)
21-
app.config['SITEMAP_INCLUDE_RULES_WITHOUT_PARAMS'] = True
21+
app.config["SITEMAP_INCLUDE_RULES_WITHOUT_PARAMS"] = True
2222
sitemap.init_app(app)
2323
set_error_handlers(app)
24-
set_robots_route(app)
24+
set_robots_txt_rule(app)
25+
set_favicon_rule(app)
2526

2627
@babel.localeselector
2728
def get_locale():
2829
return request.accept_languages.best_match(LANGUAGES.keys())
2930

30-
app.config['BABEL_TRANSLATION_DIRECTORIES'] = os.path.join(
31+
app.config["BABEL_TRANSLATION_DIRECTORIES"] = os.path.join(
3132
app.root_path, TRANSLATION_DIRNAME
3233
)
3334

@@ -40,7 +41,7 @@ def add_header(r):
4041
r.headers["Cache-Control"] = "no-cache, no-store, must-revalidate"
4142
r.headers["Pragma"] = "no-cache"
4243
r.headers["Expires"] = "0"
43-
r.headers['Cache-Control'] = 'public, max-age=0'
44+
r.headers["Cache-Control"] = "public, max-age=0"
4445
return r
4546

4647
from .ui import dashboard
@@ -66,7 +67,15 @@ def server_error(e):
6667
return render_template("errors/generic.html", error=e)
6768

6869

69-
def set_robots_route(app):
70-
@app.route('/robots.txt')
70+
def set_robots_txt_rule(app):
71+
@app.route("/robots.txt")
7172
def robots_txt():
7273
return send_from_directory(app.static_folder, request.path[1:])
74+
75+
76+
def set_favicon_rule(app):
77+
@app.route("/favicon.ico")
78+
def favicon():
79+
return send_from_directory(
80+
os.path.join(app.root_path, "static"),
81+
"favicon.ico", mimetype="image/vnd.microsoft.icon")

app/static/favicon.ico

1.12 KB
Binary file not shown.

app/static/img/virussketch_16.png

944 Bytes
Loading

app/static/img/virussketch_180.png

20.4 KB
Loading

app/static/img/virussketch_32.png

1.49 KB
Loading

app/templates/base/head.html

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -30,10 +30,10 @@
3030
<meta property="og:locale" content="en_US"/>
3131
<meta property="og:locale:alternate" content="it-IT"/>
3232
<title>{{ page_title }}</title>
33-
<link rel="apple-touch-icon" href="{{ url_for('static', filename='img/virussketch.png') }}" sizes="180x180">
34-
<link rel="icon" href="{{ url_for('static', filename='img/virussketch.png') }}" sizes="32x32" type="image/png">
35-
<link rel="icon" href="{{ url_for('static', filename='img/virussketch.png') }}" sizes="16x16" type="image/png">
33+
<link rel="apple-touch-icon" href="{{ url_for('static', filename='img/virussketch_180.png') }}" sizes="180x180">
3634
<link rel="mask-icon" href="{{ url_for('static', filename='img/virussketch.png') }}" color="#563d7c">
35+
<link rel="icon" href="{{ url_for('static', filename='img/virussketch_32.png') }}" sizes="32x32" type="image/png">
36+
<link rel="icon" href="{{ url_for('static', filename='img/virussketch_16.png') }}" sizes="16x16" type="image/png">
3737
<link rel="icon" href="{{ url_for('static', filename='img/virussketch.png') }}">
3838
<link href="https://cdn.datatables.net/1.10.20/css/dataTables.bootstrap4.min.css" rel="stylesheet" crossorigin="anonymous" />
3939
<link href="https://cdnjs.cloudflare.com/ajax/libs/jqueryui/1.12.1/jquery-ui.min.css" rel="stylesheet"/>

0 commit comments

Comments
 (0)