def post(self, request): ft_api: FtApi = FtApi() piscine_ft_users = PiscineFtUser.objects.filter(is_public=True) for piscine_ft_user in piscine_ft_users: if self.is_one_hour(piscine_ft_user.updated_at): detail_data = ft_api.get_data( url=f'users/{piscine_ft_user.id}') peer_list = ft_api.get_data( url= f'users/{piscine_ft_user.id}/scale_teams/graph/on/created_at/by/day' ) piscine_ft_user.piscine_level = Decimal( detail_data["cursus_users"][0]["level"]) piscine_ft_user.peer_count = get_piscine_value_sum(peer_list) if len(detail_data["cursus_users"]) == 2: piscine_ft_user.is_pass = True piscine_ft_user.save() return render(request, "piscine/piscine_manage_complete.html", {"task": "피신 유저의 정보를 업데이트 했습니다."})
def post(self, request): ft_api: FtApi = FtApi() page: int = count_page(ft_api.get_data(url="campus/29")["users_count"]) crawlings = [ ft_api.get_data(url="campus/29/users", page=x, per_page=100, sort="login") for x in range(1, int(page) + 1) ] for crawling in crawlings: for user_data in crawling: if not FtUser.objects.filter( login=user_data["login"]).exists(): user_detail_data = ft_api.get_data( url=f'users/{user_data["login"]}') return render(request, "piscine/piscine_manage_complete.html", {"task": "MakePiscineFtUser"})
def make_piscine_ft_user(page): ft_api = FtApi() users = ft_api.get_data(url="campus/29/users", page=page, per_page=100, sort="login") for data in users: try: PiscineFtUser.objects.get(id=data["id"]) except: try: detail_data = ft_api.get_data(url=f'users/{data["id"]}') if not detail_data["cursus_users"][0]["end_at"] is None: # peer_list = ft_api.get_data( # url=f'users/{data["id"]}/scale_teams/graph/on/created_at/by/day' # ) if len(detail_data["cursus_users"]) == 2: PiscineFtUser.objects.create( id=data["id"], login=data["login"], pool_year=detail_data["pool_year"], pool_month=detail_data["pool_month"], is_public=True, is_pass=True, piscine_level=Decimal( detail_data["cursus_users"][0]["level"]), # peer_count=get_piscine_value_sum(peer_list) ) else: PiscineFtUser.objects.create( id=data["id"], login=data["login"], pool_year=detail_data["pool_year"], pool_month=detail_data["pool_month"], is_public=True, is_pass=False, piscine_level=Decimal( detail_data["cursus_users"][0]["level"]), # peer_count=get_piscine_value_sum(peer_list) ) except: pass
def post(self, request): ft_api: FtApi = FtApi() page: int = count_page(ft_api.get_data(url="campus/29")["users_count"]) crawlings = [ ft_api.get_data(url="campus/29/users", page=x, per_page=100, sort="login") for x in range(1, int(page) + 1) ] for crawling in crawlings: for data in crawling: _, is_have = TempFtUser.objects.get_or_create(id=data["id"]) if is_have: detail_data = ft_api.get_data(url=f'users/{data["id"]}') if len(detail_data["cursus_users"] ) == 1 and not detail_data["cursus_users"][0][ "end_at"] is None: if (PiscineFtUser.objects.filter( id=data["id"]).exists() or not self.is_piscine_user( detail_data["cursus_users"][0]["end_at"])): pass else: peer_list = ft_api.get_data( url= f'users/{data["id"]}/scale_teams/graph/on/created_at/by/day' ) PiscineFtUser.objects.create( id=data["id"], login=data["login"], is_public=True, piscine_level=Decimal( detail_data["cursus_users"][0]["level"]), peer_count=get_piscine_value_sum(peer_list)) return render(request, "piscine/piscine_manage_complete.html", {"task": "MakePiscineFtUser"})
def make_ft_user(page): ft_api = FtApi() users = ft_api.get_data(url="campus/29/users", page=page, per_page=100, sort="login") for data in users: try: FtUser.objects.get(id=data["id"]) except: try: detail_data = ft_api.get_data(url=f'users/{data["id"]}') coalition_data = ft_api.get_data( url=f'users/{data["id"]}/coalitions_users') if coalition_data and Coalition.objects.filter( id=int(coalition_data[0]["coalition_id"])).exists(): ft_user = FtUser.objects.create( id=data["id"], login=data["login"], data=detail_data, is_alive=True, coalition=Coalition.objects.get( id=int(coalition_data[0]["coalition_id"])), ) Tier.objects.create( FtUser=ft_user, coalition_point=coalition_data[0]["score"], ) else: FtUser.objects.create( id=data["id"], login=data["login"], data=detail_data, is_alive=False, ) except: pass