Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 5 additions & 1 deletion .gitignore
Original file line number Diff line number Diff line change
@@ -1,2 +1,6 @@
token.txt
.docx
.docx
src/__pycache__/
result.txt
.idea/
.DS_Store
4 changes: 2 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
# work
Генератор автоматического отчета о проведенных indoor измерениях
# WB
Парсинг позиций с ВБ и сохранение их в БД
Binary file added db/positions.db
Binary file not shown.
54 changes: 54 additions & 0 deletions responses/142400300.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,54 @@
16:03:2023 20:26:42
None(None)
None(None)
386(4)
171(2)
74(1)
499(5)
None(None)
423(5)
460(5)
4876(49)
3326(34)
233(3)
4730(48)
4740(48)
4740(48)
279(3)
5088(51)
5086(51)
1545(16)
368(4)
1300(14)
423(5)
460(5)
170(2)
None(None)
4730(48)
None(None)
4973(50)
5105(52)
3393(34)
None(None)
1894(19)
2073(21)
None(None)
None(None)
None(None)
4413(45)
None(None)
None(None)
3301(34)
None(None)
47(1)
544(6)
1969(20)
2(1)
1097(11)
2058(21)
1191(12)
912(10)
101(2)
1524(16)
48(1)
98(1)
55 changes: 55 additions & 0 deletions responses/142400304.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,55 @@
16:03:2023 21:23:09
None(None)
None(None)
None(None)
None(None)
None(None)
None(None)
None(None)
None(None)
None(None)
None(None)
None(None)
None(None)
None(None)
None(None)
None(None)
None(None)
None(None)
None(None)
None(None)
None(None)
None(None)
None(None)
None(None)
None(None)
None(None)
None(None)
None(None)
None(None)
None(None)
None(None)
None(None)
None(None)
None(None)
None(None)
None(None)
None(None)
None(None)
None(None)
None(None)
None(None)
None(None)
None(None)
None(None)
None(None)
None(None)
None(None)
None(None)
None(None)
None(None)
None(None)
None(None)
None(None)
None(None)
None(None)
59 changes: 59 additions & 0 deletions responses/145934856.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,59 @@
16:03:2023 10:04:55
None(None)
None(None)
1840(19)
371(4)
2313(24)
1819(19)
4587(46)
None(None)
1303(14)
None(None)
896(9)
1422(15)
3432(35)
3703(38)
None(None)
None(None)
None(None)
4951(50)
None(None)
None(None)
1109(12)
None(None)
1303(14)
None(None)
367(4)
4914(50)
3703(38)
None(None)
808(9)
725(8)
None(None)
None(None)
425(5)
2546(26)
None(None)
89(1)
7(1)
1(1)
399(4)
568(6)
None(None)
None(None)
1448(15)
40(1)
32(1)
74(1)
314(4)
200(3)
190(2)
63(1)
109(2)
None(None)
None(None)
190(2)
113(2)
599(6)
262(3)
None(None)
7 changes: 7 additions & 0 deletions sql_queries/create_db.sql
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
CREATE TABLE IF NOT EXISTS Positions
(
date TEXT PRIMARY KEY,
item_ID INTEGER,
request TEXT,
item_position INTEGER
)
1 change: 0 additions & 1 deletion src/142400300.txt

This file was deleted.

7 changes: 4 additions & 3 deletions src/constants.py
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
USER_REQUESTS = "142400300.txt"
DEFAULT_ITEM_ID = 142400300
MAX_PAGE = 60
HEADER = {'Accept': "*/*", 'User-Agent': "Mozilla/5.0 (Windows NT 10.0; Win64; x64)"}
DEFAULT_ITEM_ID = 145934856
MAX_PAGE = 20
HEADER = {'Accept': "*/*", 'User-Agent': "Mozilla/5.0 (Windows NT 10.0; Win64; x64)"}
MAX_LIMIT = 300
Empty file removed src/data.json
Empty file.
43 changes: 43 additions & 0 deletions src/db_class.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,43 @@
import sqlite3
import os


class PositionsDB:

def __init__(self):
self.db_path = 'db/positions.db'
self.connect = sqlite3.connect(self.db_path)
self.cursor = self.connect.cursor()

def create_db(self):
query = f"""
CREATE TABLE IF NOT EXISTS Positions
(
id INTEGER PRIMARY KEY,
date TEXT,
item_ID INTEGER,
request TEXT,
item_position INTEGER
)
"""
self.cursor.execute(query)
return self

def select_all(self):
query = f""" SELECT * FROM Positions """
result = self.cursor.execute(query)
print(self.cursor.fetchall())
return result

def insert_row(self, data_dict: dict):
query = f""" INSERT OR REPLACE INTO Positions (date, item_ID, request, item_position)
VALUES ('{data_dict.get('date')}', {data_dict.get('item_ID')},
'{data_dict.get('request')}', {data_dict.get('position')})
"""
self.cursor.execute(query)

def commit(self):
self.connect.commit()

def disconnect(self):
self.connect.close()
61 changes: 54 additions & 7 deletions src/get_external.py
Original file line number Diff line number Diff line change
@@ -1,13 +1,31 @@
import os
from constants import *


class InfoImport:

def __init__(self, item_id=DEFAULT_ITEM_ID, user_request=None, user_requests_list=None):
self.item_id = item_id
self.user_request = user_request
self.user_requests_list = user_requests_list
def __init__(self):
self.mode = 1
self.item_id = None
self.user_request = None
self.user_requests_list = None

def select_mode(self):
mode = -1
while 0 > mode or mode > 4:
print('Выберите режим работы:\n'
'0 - Выход из программы\n'
'1 - Одиночный запрос для одного артикула\n'
'2 - Одиночный запрос для нескольких артикулов\n'
'3 - Множественный запрос для одного артикула\n'
'4 - Множественный запрос для нескольких артикулов\n')
mode = input('Введите цифру от 0 до 4: ')
try:
mode = int(mode)
except ValueError:
mode = -1
print('Это не цифра\n')
self.mode = mode
return self

def get_user_request(self):
request = input("Enter user request: ")
Expand All @@ -21,15 +39,44 @@ def get_item_id(self):
except ValueError:
return 1

def get_items(self):
self.item_id = []
path = f'user_requests/items.txt'
if not os.path.isfile(path):
return 1
with open(path, "r") as file:
self.item_id = [x for x in file.readlines()]

items = []
for item in self.item_id:
try:
items.append(int(item))
except ValueError:
pass

self.item_id = items
return self.item_id

def get_user_requests_list(self):
path = f'{self.item_id}.txt'
path = f'user_requests/{self.item_id}.txt'
if not os.path.isfile(path):
return 1
self.user_requests_list = []
with open(path, "r") as file:
with open(path, "r", encoding='utf-8') as file:
for line in file.readlines():
self.user_requests_list.append(line.replace(" ", "+").replace("\n", ""))
if len(self.user_requests_list) > 0:
return self.user_requests_list
return 1

def get_common_requests_list(self):
path = f'user_requests/common.txt'
if not os.path.isfile(path):
return 1
self.user_requests_list = []
with open(path, "r", encoding='utf-8') as file:
for line in file.readlines():
self.user_requests_list.append(line.replace(" ", "+").replace("\n", ""))
if len(self.user_requests_list) > 0:
return self.user_requests_list
return 1
Loading