Revize 2f227a6c
Přidáno uživatelem Tomáš Ballák před více než 3 roky(ů)
modules/crawler/Utilities/Database/database_loader.py | ||
---|---|---|
1 | 1 |
from Utilities.Database import database_data_line, database_record_logs |
2 | 2 |
from Utilities import configure_functions |
3 |
from Utilities.helpers import should_skip |
|
3 |
from Utilities.helpers import should_skip, detect_change
|
|
4 | 4 |
import pymongo |
5 | 5 |
import re |
6 | 6 |
|
... | ... | |
24 | 24 |
def create_database_connection(): |
25 | 25 |
""" |
26 | 26 |
Creates connection to mongoDB |
27 |
|
|
27 |
|
|
28 | 28 |
Returns: |
29 | 29 |
Connection to mongoDB |
30 | 30 |
""" |
... | ... | |
116 | 116 |
config: loaded configuration file of dataset |
117 | 117 |
""" |
118 | 118 |
# collection where are specified aviable datasets |
119 |
compareKeys = ['display-name', |
|
120 |
'display-color'] |
|
119 | 121 |
collection_datasets = database_connection[MONGODB_DATASET_COLLECTION] |
120 | 122 |
|
121 |
dataset_name = config['dataset-name'] |
|
122 |
display_name = config['display-name'] |
|
123 |
|
|
124 |
query = {'key-name': dataset_name} |
|
123 |
query = {'key-name': config['dataset-name']} |
|
125 | 124 |
|
126 | 125 |
# check if newly added data already have a dataset specified in collection |
127 |
dataset_present = collection_datasets.find_one(query)
|
|
126 |
current_dataset = collection_datasets.find_one(query)
|
|
128 | 127 |
|
129 |
if dataset_present is None:
|
|
128 |
if current_dataset is None:
|
|
130 | 129 |
collection_datasets.insert_one({ |
131 |
'key-name': dataset_name, |
|
132 |
'display-name': display_name, |
|
130 |
'key-name': config['dataset-name'], |
|
131 |
'display-name': config['display-name'], |
|
132 |
'display-color': config['display-color'], |
|
133 | 133 |
'updated': 0 |
134 | 134 |
}) |
135 |
elif dataset_present['display-name'] != display_name: |
|
136 |
newvalues = {"$set": {'display-name': display_name}} |
|
137 |
collection_datasets.update_one(query, newvalues) |
|
135 |
elif detect_change(current_dataset, config, compareKeys): |
|
136 |
newVal = {} |
|
137 |
for key in compareKeys: |
|
138 |
newVal[key] = config[key] |
|
139 |
collection_datasets.update_one(query, {"$set": newVal}) |
|
138 | 140 |
|
139 | 141 |
|
140 | 142 |
def update_devices_collection(config): |
... | ... | |
252 | 254 |
mydb[name].drop() |
253 | 255 |
print("Dropping: " + name) |
254 | 256 |
|
255 |
database_record_logs.reset_ignore_set_loaded(dataset_name) |
|
257 |
database_record_logs.reset_ignore_set_loaded(dataset_name) |
Také k dispozici: Unified diff
Feature Re #8156 show all datasets