Skip to content

Commit 161cf94

Browse files
authored
Moex
* poc * fixup * defaults * defaults * fixup * defaults * defaults * fixup
1 parent a8562eb commit 161cf94

File tree

19 files changed

+917
-256
lines changed

19 files changed

+917
-256
lines changed

.github/workflows/ci.yml

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,8 @@ jobs:
3636
run: |
3737
python3 -m ensurepip
3838
python3 -m venv /opt/certbot/
39-
pip3 install aiogram tomli certbot
39+
python3 -m pip install --upgrade pip
40+
pip3 install aiogram pandas apscheduler tomli certbot py-postgresql beautifulsoup4 lxml
4041
4142
# - name: Install some html stuff
4243
# run: |

.gitignore

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,8 @@
11
token
22
*.pem
33
*.toml
4+
*.log
5+
*.log.*
46

57
# Byte-compiled / optimized / DLL files
68
__pycache__/
@@ -60,7 +62,7 @@ cover/
6062
*.pot
6163

6264
# Django stuff:
63-
*.log
65+
6466
local_settings.py
6567
db.sqlite3
6668
db.sqlite3-journal

db/init.sh

Lines changed: 14 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,17 @@ db_name=$1
44
db_user=$2
55
db_pass=$3
66

7-
psql -U postgres -c "DROP DATABASE ${db_name};"
8-
psql -U postgres -c "DROP USER ${db_user};"
9-
psql -U postgres -c "CREATE USER ${db_user} PASSWORD '${db_pass}';"
10-
psql -U postgres -c "CREATE DATABASE ${db_name} OWNER=${db_user};"
7+
# psql -U postgres -c "DROP DATABASE ${db_name};"
8+
# psql -U postgres -c "DROP USER ${db_user};"
9+
10+
psql -U postgres ${db_pass} << EOF
11+
CREATE USER ${db_user} PASSWORD '${db_pass}';
12+
CREATE DATABASE ${db_name} OWNER=${db_user};
13+
\c ${db_name};
14+
15+
16+
CREATE TABLE IF NOT EXISTS options (
17+
id SERIAL,
18+
name VARCHAR(100),
19+
value text);
20+
EOF

html/index.html

Lines changed: 88 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -6,89 +6,149 @@
66
<title>JBond telegram web app</title>
77

88
<script src="https://telegram.org/js/telegram-web-app.js"></script>
9-
10-
<script src="toml/toml.js"></script>
119
<script src="nouislider/nouislider.js"></script>
1210

1311
<link rel="stylesheet" href="style.css">
1412
<link rel="stylesheet" href="nouislider/nouislider.css">
1513
</head>
1614
<body>
17-
1815
<div class="wrapper">
19-
<label class=block-name>От срока до погашения, мес</label>
2016
<div class="fields">
2117
<div class="field field-left">
22-
<input type="number" id="duration-from" value="3" min="0" max="120" maxlength="3">
18+
<input type="number" id="redemption-from" value="3" min="0" max="120" maxlength="3">
2319
</div>
24-
<span class="separator">-</span>
20+
<span class="separator block-name">Срок, мес</span>
2521
<div class="field field-right">
26-
<input type="number" id="duration-to" value="36" min="1" max="120" maxlength="3">
22+
<input type="number" id="redemption-to" value="36" min="1" max="120" maxlength="3">
2723
</div>
2824
</div>
29-
<div id="duration-slider" class="slider"></div>
25+
<div id="redemption-slider" class="slider"></div>
3026
</div>
3127

3228
<div class="wrapper">
33-
<label class=block-name>Доходность к погашению, %</label>
3429
<div class="fields">
3530
<div class="field field-left">
36-
<input type="number" id="full-profit-from" value="0.0" min="0.0" max="50.0" maxlength="5">
31+
<input type="number" id="profit-from" value="0.0" min="0.0" max="50.0" maxlength="5">
3732
</div>
38-
<span class="separator">-</span>
33+
<span class="separator block-name">Доходность, %</span>
3934
<div class="field field-right">
40-
<input type="number" id="full-profit-to" value="20.0" min="0.0" max="50.0" maxlength="5">
35+
<input type="number" id="profit-to" value="20.0" min="0.0" max="50.0" maxlength="5">
4136
</div>
4237
</div>
43-
<div id="full-profit-slider" class="slider"></div>
38+
<div id="profit-slider" class="slider"></div>
4439
</div>
4540

4641
<div class="wrapper">
47-
<label class=block-name>Див-доходность к погашению, %</label>
4842
<div class="fields">
4943
<div class="field field-left">
50-
<input type="number" id="div-profit-from" value="0.0" min="0.0" max="50.0" maxlength="5">
44+
<input type="number" id="coupons-from" value="0.0" min="0.0" max="50.0" maxlength="5">
5145
</div>
52-
<span class="separator">-</span>
46+
<span class="separator block-name">Купон, %</span>
5347
<div class="field field-right">
54-
<input type="number" id="div-profit-to" value="20.0" min="0.0" max="50.0" maxlength="5">
48+
<input type="number" id="coupons-to" value="20.0" min="0.0" max="50.0" maxlength="5">
5549
</div>
5650
</div>
57-
<div id="div-profit-slider" class="slider"></div>
51+
<div id="coupons-slider" class="slider"></div>
5852
</div>
5953

6054
<div class="wrapper">
61-
<label class=block-name>Рейтинг не ниже</label>
6255
<div class="fields">
6356
<div class="field field-left">
64-
<input type="text" id="rating-from" minlength="1" maxlength="4">
57+
<input type="number" id="duration-from" value="0" min="0" max="50" maxlength="3">
58+
</div>
59+
<span class="separator block-name">Дюрация, мес</span>
60+
<div class="field field-right">
61+
<input type="number" id="duration-to" value="50" min="0" max="50" maxlength="3">
6562
</div>
6663
</div>
64+
<div id="duration-slider" class="slider"></div>
65+
</div>
66+
67+
<div class="wrapper">
68+
<label class=block-name>Цена, %</label>
69+
<input type="text" id="price-to" class="field field-right" minlength="1" maxlength="3">
70+
<div id="price-slider" class="slider single-slider"></div>
71+
</div>
72+
73+
<div class="wrapper">
74+
<label class=block-name>Рейтинг</label>
75+
<input type="text" id="rating-from" class="field field-right" minlength="1" maxlength="4">
6776
<div id="rating-slider" class="slider single-slider"></div>
6877
</div>
6978

7079
<div class="wrapper">
71-
<div>
72-
<input type="checkbox" id="is_qual" name="qualified" value="no"/> <label class="block-name"> Добавить для квалов </label>
80+
<div class="coupon-period">
81+
<label class="block-name">Купонный период(раз в год)</label>
82+
<div>
83+
<input type="checkbox" class="coupon-period-ckeckbox" value="1" /><label class="block-name">1</label>
84+
<input type="checkbox" class="coupon-period-ckeckbox" value="2" /><label class="block-name">2</label>
85+
<input type="checkbox" class="coupon-period-ckeckbox" value="3" /><label class="block-name">3</label>
86+
<input type="checkbox" class="coupon-period-ckeckbox" value="4" checked/><label class="block-name">4</label>
87+
<input type="checkbox" class="coupon-period-ckeckbox" value="12" checked/><label class="block-name">12</label>
88+
</div>
89+
</div>
90+
<div class="selector">
91+
<label class="block-name"> Квал </label>
92+
<input type="checkbox" class="field-right" id="is_qual" checked/>
7393
</div>
74-
<div>
75-
<label> <input type="checkbox" id="is_amort" name="amortization" value="yes"/><label class="block-name"> Добавить с амортизацией </label>
94+
<div class="selector">
95+
<label class="block-name"> Амортизация </label>
96+
<input type="checkbox" class="field-right" id="is_amort" checked/>
7697
</div>
98+
<div class="selector">
99+
<label class="block-name"> Оферта </label>
100+
<input type="checkbox" class="field-right" id="is_offer"/>
101+
</div>
102+
</div>
103+
104+
<div class="wrapper">
105+
<label class="block-name">Сортировка</label>
106+
<input type="radio" id="order-asc" class="order" name="order" value="asc"/><label for="order-asc" class="order-label"></label>
107+
<input type="radio" id="order-dsc" class="order" name="order" value="desc" checked/><label for="order-dsc" class="order-label"></label>
108+
<fieldset>
109+
<div>
110+
<label class="block-name"> Срок до погашения</label>
111+
<input type="radio" id="sort-redemption" class="sort-by field-right sort-asc" name="sorting" value="DAYSTOREDEMPTION" />
112+
</div>
113+
<div>
114+
<label class="block-name"> По доходности (срвз)</label>
115+
<input type="radio" id="sort-yeild" class="sort-by field-right sort-dsc" name="sorting" value="YIELDATWAP" checked/>
116+
</div>
117+
<div>
118+
<label class="block-name"> По купонной дох.</label>
119+
<input type="radio" id="sort-coupon" class="sort-by field-right sort-dsc" name="sorting" value="COUPONPERCENT" />
120+
</div>
121+
<div>
122+
<label class="block-name"> По дюрации</label>
123+
<input type="radio" id="sort-duration" class="sort-by field-right sort-asc" name="sorting" value="DURATION" />
124+
</div>
125+
126+
</fieldset>
77127
</div>
78128

129+
<div class="wrapper">
130+
<div class="listing">
131+
<label class="block-name">Котировальные списки</label>
132+
<div>
133+
<input type="checkbox" class="listing-ckeckbox" value="1" checked/><label class="block-name">1</label>
134+
<input type="checkbox" class="listing-ckeckbox" value="2" checked/><label class="block-name">2</label>
135+
<input type="checkbox" class="listing-ckeckbox" value="3" /><label class="block-name">3</label>
136+
</div>
137+
</div>
138+
</div>
79139

80140
<p>
81141
<div style="text-align: center;">
82142
<button id="btn_ok">Готово</button>
83143
</div>
84144
</p>
85145

86-
<div><label>Фильтры</label>
87-
<textarea id="filters" name="filters" rows="4" cols="200"></textarea>
146+
<!-- Debug -->
147+
<div style="display: none">
148+
<label>Фильтры</label>
149+
<textarea id="filters" rows="4" cols="100"></textarea>
88150
</div>
89151

90-
<!-- <div><label>Фильтры</label> <input id="filters" type="text" value="" length="100" maxlength="1000"></div> -->
91-
92152
<script src="script.js"></script>
93153
</body>
94154
</html>

0 commit comments

Comments
 (0)