-
Notifications
You must be signed in to change notification settings - Fork 0
/
main.py
92 lines (76 loc) · 3.65 KB
/
main.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
from translator.translator import LanguageTranslator
from database.mongo_service import MongoService
from database.solr_service import SolrService
from services.location_service import LocationService
from services.hotel_service import HotelService
from services.review_service import ReviewService
from services.sentiment_review_service import SentimentReviewService
from services.review_translated_service import ReviewTranslatedService
from mongoengine import connect
from pymongo import MongoClient
import time
import datetime
import json
import pprint
from googletrans import Translator
class Main(MongoService):
def __init__(self):
super().__init__()
self.start()
def start(self):
datenow = datetime.datetime.now()
reviewtranslate_service = ReviewTranslatedService()
hotel_service = HotelService()
review_service = ReviewService()
location_service = LocationService()
# locations = location_service.get_all_locations()
locations = location_service.get_locations_indonesia()
for i, location in enumerate(locations):
hotels = hotel_service.get_hotels_by_locationid(
location['location_id'])
for j, hotel in enumerate(hotels):
reviews = review_service.get_review_by_hotel_locationid(
hotel['location_id'])
for r, review in enumerate(reviews):
text_to_translate = review['text']
try:
isexist_review = reviewtranslate_service.isexist_review_by_hotel_locid(
hotel['location_id'], review['id'])
# print(isexist_review)
if isexist_review.count() == 0:
print("[", datetime.datetime.now(), "] Review (",
review['id'], ") on table Translated Review is not exist. Saving Review ...")
# gTranslator = Translator()
language_translator = LanguageTranslator()
text_translated = language_translator.translate_yandex(
text_to_translate)
data = {
"hotel": hotel,
"review": review,
"location_id": location['location_id'],
"hotel_id": hotel['location_id'],
"review_id": review['id'],
"text_to_translate": text_to_translate,
"text_translated": text_translated,
"created_at": datenow
}
if text_translated != None:
reviewtranslate_service.create(data)
else:
print(
str("-----> Err : Failed to translate review !"))
else:
print("[", datetime.datetime.now(),
"] Review (",
review['id'], ") on table Translated Review is already exist")
except Exception as err:
print(str("Err : ", err))
continue
# solrService = SolrService()
# count = solrService.getCollection("test_review", "test")
# print("Count : ", count)
def translate_reviews_onhotel(self, hotel):
print()
if __name__ == "__main__":
Main()
# time.sleep(10000)