Skip to content

Commit e9189f7

Browse files
committed
update
1 parent bb531fd commit e9189f7

File tree

5 files changed

+60
-14
lines changed

5 files changed

+60
-14
lines changed

.gitignore

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -148,4 +148,5 @@ data_old/
148148
api-src/
149149
account.json
150150
venv_old
151-
_/
151+
_/
152+
_maxsivkov

cmdline_arguments.py

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,16 @@
11
import argparse, os
2+
from datadir import DataDir
23
def parser() -> argparse.ArgumentParser:
34
parser = argparse.ArgumentParser(description='Command line options')
45
parser.add_argument("-v", "--verbose", help="increase output verbosity", action="store_true", default=False)
5-
parser.add_argument("-u", "--taxerapi_url", nargs='?', help="set taxer-api URL", default=os.getenv('BSTMT_TAXER_API_URL', 'http://127.0.0.1:7080'))
6+
parser.add_argument("-u", "--taxerapi_url", nargs='?', help="TaxerApi URL", default=os.getenv('BSTMT_TAXER_API_URL', 'http://127.0.0.1:7080'))
67
parser.add_argument("-a", "--accounts_folder", nargs='?', help="accounts folder", default=os.getenv('BSTMT_ACCOUNTS_DIR', 'data'))
78

8-
parser.add_argument('action', help='Action: init - initialize; process - process input files, prepare json output files; push - upload json files to taxer-api')
9+
parser.add_argument("-i", "--input_folder", nargs='?', help="input folder",
10+
default=os.getenv('BSTMT_INPUT_DIR', DataDir.default_input_folder))
11+
parser.add_argument("-o", "--output_folder", nargs='?', help="output folder",
12+
default=os.getenv('BSTMT_OUTPUT_DIR', DataDir.default_output_folder))
13+
parser.add_argument("-r", "--first_row", nargs='?', help="first row",
14+
default=os.getenv('BSTMT_FIRST_ROW', DataDir.default_first_row))
15+
parser.add_argument('action', help='Action: init - initialize; process - process input files, prepare json output files; push - upload json files to taxer-api, test')
916
return parser

datadir.py

Lines changed: 14 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -7,11 +7,11 @@
77
from utils import list_files
88
import confuse
99
import os, re
10-
import ujson
10+
import ujson, yaml
1111
import logging
1212
from taxerapi import Configuration as TaxerConfig, ApiClient as TaxerClient, AccountApi as TaxerAccountApi, AccountsApi as TaxerAccountsApi, OperationApi as TaxerOperationApi \
1313
, Profile, User, UserBankAccount as ApiBankAccount
14-
from utils import get_config_str
14+
from utils import get_config_str, get_config_int
1515

1616
@dataclass
1717
class UserAccount:
@@ -56,8 +56,9 @@ class DataDir(object):
5656
accounts_fn:str = "accounts.json"
5757
config_fn: str = "config.yaml"
5858
default_rules_folder:str = 'rules'
59-
default_input_folder:str = 'data'
59+
default_input_folder:str = 'data_in'
6060
default_output_folder: str = 'data_out'
61+
default_first_row: int = 6
6162

6263
def __init__(self, config:confuse.Configuration):
6364
self.logger = logging.getLogger(__name__)
@@ -158,6 +159,16 @@ def UpdateUsers(self):
158159
if not os.path.exists(user_folder):
159160
self.logger.debug(f'Creating folder {user_folder}')
160161
os.mkdir(user_folder)
162+
# Store default config
163+
user_config: Dict = {
164+
'datafile': {
165+
'first_row': get_config_int(self.config, 'first_row', DataDir.default_first_row)
166+
},
167+
'input_folder': get_config_str(self.config, 'input_folder', DataDir.default_input_folder),
168+
'output_folder': get_config_str(self.config, 'output_folder', DataDir.default_output_folder),
169+
}
170+
with open(self.user_config_path(u.id), encoding='utf8', mode='w') as f:
171+
yaml.dump(user_config, f)
161172
self.create_folder_not_exists(self.user_folder_rules(u.id))
162173
self.create_folder_not_exists(self.user_folder_input(u.id))
163174
self.create_folder_not_exists(self.user_folder_output(u.id))

doc/how-to-run-docker-lazy.md

Lines changed: 33 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,37 @@
1-
## Запуск с использованием Docker
1+
## Запуск с использованием Docker для ленивых
22

3-
- Запустить АПИ сервер [Taxer API](https://github.com/maxsivkov/py-taxer-api)
4-
- Открыть коммандную строку `cmd`
5-
- Запуск
3+
- Скачать [docker-compose.,yml](https://raw.githubusercontent.com/maxsivkov/py-pbank-statements/master/bundle/docker-compose.yml)
4+
5+
```
6+
curl -o docker-compose.yml https://raw.githubusercontent.com/maxsivkov/py-pbank-statements/master/bundle/docker-compose.yml
7+
```
8+
9+
- Создать каталог `data-folder`
10+
```
11+
MD data-folder
12+
```
13+
14+
- Получить [taxer cookies](https://github.com/maxsivkov/py-taxer-api/blob/master/doc/howto-run.md#%D0%BA%D0%B0%D0%BA-%D0%BF%D0%BE%D0%BB%D1%83%D1%87%D0%B8%D1%82%D1%8C-cookies)
15+
- Создать файл `.env` и поместить туда taxer cookies, должно получиться примерно такое
616
```
7-
docker run -it --rm maxsivkov/bank-statements test
17+
TAXER_COOKIES=_ga=GA1.2.167.......d467a83b53
818
```
9-
В результате в выводе должно появиться чтото типа `Action test`
1019

20+
- Запустить
21+
```
22+
docker-compose run statements test
23+
```
24+
В результате в выводе должно появиться чтото типа `Action test` со списком аккаунтов и пользователей
25+
26+
27+
Теперь можно выполнять комманды
28+
```
29+
docker-compose run statements <COMMAND>
30+
```
31+
32+
**NOTE**
33+
После того как работы с данным аккаунтом завершены, необходить застопить все что связано с сервисом `statements`:
34+
```
35+
docker-compose stop
36+
```
37+

main.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
import re
33
import os
44
import logging, logging.config
5-
import ujson
5+
import ujson, yaml
66
import datetime
77
from config import configuration
88
from datadir import DataDir
@@ -68,7 +68,7 @@ def setup_logger(filename:str):
6868
#datafile_parts:str = os.path.splitext(os.path.basename(datafile))
6969
outputfn = os.path.join(user_data.user_folder_output(userid), os.path.basename(datafile))
7070

71-
stmt_data = XlsxDriver(filepath=datafile, output_file_path=outputfn, first_row=get_config_int(user_data.config, 'datafile.firstrow', '6'))
71+
stmt_data = XlsxDriver(filepath=datafile, output_file_path=outputfn, first_row=get_config_int(user_data.config, 'datafile.first_row'))
7272
stmt_data.read()
7373

7474
from execution_context import ExecutionContext

0 commit comments

Comments
 (0)