Skip to content

Commit 152140e

Browse files
authored
feat: daily horoscope by sign (#151)
* feat: daily horoscope by sign
1 parent 6e6a388 commit 152140e

File tree

4 files changed

+264
-232
lines changed

4 files changed

+264
-232
lines changed

app/routers/profile.py

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -46,14 +46,17 @@ async def profile(
4646
session.commit()
4747
user = session.query(User).filter_by(id=1).first()
4848

49-
# Get on this day data from wiki
49+
signs = ['Aries', 'Taurus', 'Gemini', 'Cancer', 'Leo',
50+
'Virgo', 'Libra', 'Scorpio', 'Sagittarius',
51+
'Capricorn', 'Aquarius', 'Pisces']
5052
on_this_day_data = get_on_this_day_events(session)
5153

5254
return templates.TemplateResponse("profile.html", {
5355
"request": request,
5456
"user": user,
5557
"events": upcoming_events,
56-
"on_this_day_data": on_this_day_data
58+
"signs": signs,
59+
"on_this_day_data": on_this_day_data,
5760
})
5861

5962

app/static/horoscope.js

Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
function sendSignDescription(singName) {
2+
const sign = singName.toLowerCase();
3+
const signData = "https://aztro.sameerkumar.website/?sign=" + sign +
4+
"&day=today";
5+
const xhr = new XMLHttpRequest();
6+
xhr.open("POST", signData, true);
7+
xhr.onload = function() {
8+
let jsonObject = JSON.parse(this.responseText);
9+
let element = document.getElementById("daily_horoscope");
10+
let str = jsonObject.description;
11+
element.innerHTML = str;
12+
};
13+
xhr.send();
14+
}
15+
16+
17+
18+
function addEventsAfterPageLoaded() {
19+
const elements = document.getElementsByClassName("sign");
20+
Array.from(elements).forEach((element) => {
21+
let singName = element.name;
22+
element.addEventListener("click", function() {
23+
sendSignDescription(singName);
24+
}, false);
25+
});
26+
}
27+
28+
document.addEventListener("DOMContentLoaded", addEventsAfterPageLoaded);

app/templates/base.html

Lines changed: 11 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -1,23 +1,23 @@
11
<!DOCTYPE html>
22
<html lang="en">
3+
34
<head>
45
{% block head %}
56
<meta charset="UTF-8">
67
<meta name="viewport" content="width=device-width, initial-scale=1.0">
78

8-
<link href="https://cdn.jsdelivr.net/npm/bootstrap@5.0.0-beta1/dist/css/bootstrap.min.css" rel="stylesheet"
9-
integrity="sha384-giJF6kkoqNQ00vy+HMDP7azOuL0xtbfIcaT9wjKHr8RbDVddVHyTfAAsrekwKmP1" crossorigin="anonymous">
9+
<link href="https://cdn.jsdelivr.net/npm/bootstrap@5.0.0-beta1/dist/css/bootstrap.min.css" rel="stylesheet" integrity="sha384-giJF6kkoqNQ00vy+HMDP7azOuL0xtbfIcaT9wjKHr8RbDVddVHyTfAAsrekwKmP1" crossorigin="anonymous">
1010
<link href="{{ url_for('static', path='/style.css') }}" rel="stylesheet">
1111

1212
<title>Calendar</title>
1313
{% endblock %}
1414
</head>
15+
1516
<body>
1617
<nav class="navbar navbar-expand-lg bg-transparent">
1718
<div class="container-fluid">
1819
<a class="navbar-brand" href="/">Calendar</a>
19-
<button class="navbar-toggler" type="button" data-bs-toggle="collapse" data-bs-target="#navbarText"
20-
aria-controls="navbarText" aria-expanded="false" aria-label="Toggle navigation">
20+
<button class="navbar-toggler" type="button" data-bs-toggle="collapse" data-bs-target="#navbarText" aria-controls="navbarText" aria-expanded="false" aria-label="Toggle navigation">
2121
<span class="navbar-toggler-icon"></span>
2222
</button>
2323
<div class="collapse navbar-collapse" id="navbarText">
@@ -43,26 +43,18 @@
4343
<a class="nav-link" href="{{ url_for('view_invitations') }}">Invitations</a>
4444
</li>
4545
<li class="nav-item">
46-
<a class="nav-link" href="/search">Search</a>
46+
<a class="nav-link" href="/search">Search</a>
4747
</li>
4848
</ul>
4949
</div>
5050
</div>
5151
</nav>
52-
{% block content %}
53-
52+
{% block content %} {% endblock %}
5453

55-
{% endblock %}
56-
57-
<script defer src="https://use.fontawesome.com/releases/v5.0.8/js/all.js"
58-
integrity="sha384-SlE991lGASHoBfWbelyBPLsUlwY1GwNDJo3jSJO04KZ33K2bwfV9YBauFfnzvynJ"
59-
crossorigin="anonymous"></script>
60-
<script src="https://cdn.jsdelivr.net/npm/bootstrap@5.0.0-beta1/dist/js/bootstrap.bundle.min.js"
61-
integrity="sha384-ygbV9kiqUc6oa4msXn9868pTtWMgiQaeYH7/t7LECLbyPA2x65Kgf80OJFdroafW"
62-
crossorigin="anonymous"></script>
63-
<script src="https://cdnjs.cloudflare.com/ajax/libs/Chart.js/2.9.4/Chart.min.js"
64-
integrity="sha512-d9xgZrVZpmmQlfonhQUvTR7lMPtO7NkZMkA0ABN3PHCbKA5nqylQ/yWlFAyY6hYgdF1Qh6nYiuADWwKB4C2WSw=="
65-
crossorigin="anonymous"></script>
54+
<script defer src="https://use.fontawesome.com/releases/v5.0.8/js/all.js" integrity="sha384-SlE991lGASHoBfWbelyBPLsUlwY1GwNDJo3jSJO04KZ33K2bwfV9YBauFfnzvynJ" crossorigin="anonymous"></script>
55+
<script src="https://cdn.jsdelivr.net/npm/bootstrap@5.0.0-beta1/dist/js/bootstrap.bundle.min.js" integrity="sha384-ygbV9kiqUc6oa4msXn9868pTtWMgiQaeYH7/t7LECLbyPA2x65Kgf80OJFdroafW" crossorigin="anonymous"></script>
56+
<script src="https://cdnjs.cloudflare.com/ajax/libs/Chart.js/2.9.4/Chart.min.js" integrity="sha512-d9xgZrVZpmmQlfonhQUvTR7lMPtO7NkZMkA0ABN3PHCbKA5nqylQ/yWlFAyY6hYgdF1Qh6nYiuADWwKB4C2WSw==" crossorigin="anonymous"></script>
6657
<script type="text/javascript" src="{{ url_for('static', path='/popover.js') }}"></script>
6758
</body>
68-
</html>
59+
60+
</html>

0 commit comments

Comments
 (0)