64 lines
2.9 KiB
Python
64 lines
2.9 KiB
Python
|
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
|
||
|
self.sex = data.sex
|
||
|
self.bdate = data.get_date(data.bdate)
|
||
|
self.relation = data.relation
|
||
|
self.country_id = data.get_int(data.country, 'id')
|
||
|
self.country = data.get_int(data.country, 'title')
|
||
|
self.city_id = data.get_int(data.city, 'id')
|
||
|
self.city = data.get_int(data.city, 'title')
|
||
|
self.home_town = data.home_town
|
||
|
self.status = data.status
|
||
|
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
|
||
|
self.activities = data.activities
|
||
|
self.interests = data.interests
|
||
|
self.books = data.books
|
||
|
self.movies = data.movies
|
||
|
self.music = data.music
|
||
|
self.tv = data.tv
|
||
|
self.games = data.games
|
||
|
self.quotes = data.quotes
|
||
|
self.about = data.about
|
||
|
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}')
|
||
|
self.political = data.get_int(personal, 'political')
|
||
|
self.religion = data.get_str(personal, 'religion')
|
||
|
self.inspired_by = data.get_str(personal, 'inspired_by')
|
||
|
self.people_main = data.get_int(personal, 'people_main')
|
||
|
self.life_main = data.get_int(personal, 'life_main')
|
||
|
self.smoking = data.get_int(personal, 'smoking')
|
||
|
self.alcohol = data.get_int(personal, 'alcohol')
|
||
|
self.relatives = Person.__collection(data.relatives, lambda item: item['type'])
|
||
|
self.occupation_type = data.get_str(data.occupation, 'type')
|
||
|
self.occupation_place_id = data.get_int(data.occupation, 'id')
|
||
|
self.occupation_place_name = data.get_str(data.occupation, 'name')
|
||
|
self.universities = Person.__collection(data.universities, lambda item: University(item).__dict__)
|
||
|
self.schools = Person.__collection(data.schools, lambda item: School(item).__dict__)
|
||
|
self.career = Person.__collection(data.career, lambda item: Career(item).__dict__)
|
||
|
self.military = Person.__collection(data.military, lambda item: Military(item).__dict__)
|
||
|
|
||
|
@staticmethod
|
||
|
def __collection(collection, function):
|
||
|
return list(map(lambda item: function(item), [] if collection is None else collection))
|