2023-05-26 10:29:20 +04:00
|
|
|
from src.career import Career
|
|
|
|
from src.military import Military
|
|
|
|
from src.raw_data import RawData
|
|
|
|
from src.school import School
|
|
|
|
from src.university import University
|
|
|
|
|
|
|
|
|
|
|
|
class Person:
|
|
|
|
def __init__(self, raw_person):
|
|
|
|
data = RawData(raw_person)
|
|
|
|
self.id = hash(str(data.id))
|
|
|
|
self.is_closed = data.is_closed
|
|
|
|
self.deactivated = data.deactivated is not None
|
|
|
|
self.has_photo = data.has_photo == 1
|
|
|
|
self.followers_count = data.followers_count
|
2023-05-26 11:22:38 +04:00
|
|
|
self.sex = data.get_int('sex')
|
|
|
|
self.bdate = RawData.get_date_st(data.bdate)
|
|
|
|
self.relation = data.get_int('relation')
|
|
|
|
self.country_id = RawData.get_int_st(data.country, 'id')
|
|
|
|
self.country = RawData.get_str_st(data.country, 'title')
|
|
|
|
self.city_id = RawData.get_int_st(data.city, 'id')
|
|
|
|
self.city = RawData.get_str_st(data.city, 'title')
|
|
|
|
self.home_town = data.get_str('home_town')
|
|
|
|
self.status = data.get_str('status')
|
2023-05-26 10:29:20 +04:00
|
|
|
self.site = data.site is not None
|
|
|
|
self.facebook = data.facebook is not None
|
|
|
|
self.twitter = data.twitter is not None
|
|
|
|
self.instagram = data.instagram is not None
|
|
|
|
self.mobile_phone = data.mobile_phone is not None
|
2023-05-26 11:22:38 +04:00
|
|
|
self.activities = data.get_str('activities')
|
|
|
|
self.interests = data.get_str('interests')
|
|
|
|
self.books = data.get_str('books')
|
|
|
|
self.movies = data.get_str('movies')
|
|
|
|
self.music = data.get_str('music')
|
|
|
|
self.tv = data.get_str('tv')
|
|
|
|
self.games = data.get_str('games')
|
|
|
|
self.quotes = data.get_str('quotes')
|
|
|
|
self.about = data.get_str('about')
|
2023-05-26 10:29:20 +04:00
|
|
|
personal = None
|
|
|
|
if data.personal is not None:
|
|
|
|
if len(data.personal) == 1:
|
|
|
|
personal = data.personal[0]
|
|
|
|
if len(data.personal) > 1:
|
|
|
|
raise Exception(f'PERSONAL {data.id}')
|
2023-05-26 11:22:38 +04:00
|
|
|
self.political = RawData.get_int_st(personal, 'political')
|
|
|
|
self.religion = RawData.get_str_st(personal, 'religion')
|
|
|
|
self.inspired_by = RawData.get_str_st(personal, 'inspired_by')
|
|
|
|
self.people_main = RawData.get_int_st(personal, 'people_main')
|
|
|
|
self.life_main = RawData.get_int_st(personal, 'life_main')
|
|
|
|
self.smoking = RawData.get_int_st(personal, 'smoking')
|
|
|
|
self.alcohol = RawData.get_int_st(personal, 'alcohol')
|
|
|
|
self.relatives = RawData.get_collection_st(data.relatives, lambda item: item['type'])
|
|
|
|
self.occupation_type = RawData.get_str_st(data.occupation, 'type')
|
|
|
|
self.occupation_place_name = RawData.get_str_st(data.occupation, 'name')
|
|
|
|
self.universities = RawData.get_collection_st(data.universities, lambda item: University(item).__dict__)
|
|
|
|
self.schools = RawData.get_collection_st(data.schools, lambda item: School(item).__dict__)
|
|
|
|
self.career = RawData.get_collection_st(data.career, lambda item: Career(item).__dict__)
|
|
|
|
self.military = RawData.get_collection_st(data.military, lambda item: Military(item).__dict__)
|