Ejemplo n.º 1
0
 def post(self, request):
     ft_api = FtApi()
     pages = count_page(ft_api.get_data(url="campus/29")["users_count"])
     for page in range(1, int(pages) + 1):
         make_piscine_ft_user.delay(page)
     return render(request, "piscine/piscine_manage_complete.html",
                   {"task": "MakePiscineFtUser"})
Ejemplo n.º 2
0
	def post(self, request):
		ft_api = FtApi()
		coalitions: Iterable[Dict[str, str]] = ft_api.get_data(url="blocs/27")["coalitions"]
		for coalition in coalitions:
			if Coalition.objects.filter(id=coalition["id"]).exists():
				pass
			else:
				Coalition.objects.create(
					id=coalition["id"],
					name=coalition["name"],
					color=coalition["color"],
				)
		return render(request, "manager/manage_complete.html", {"task": "MakeCoalition"})
Ejemplo n.º 3
0
	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:
				if FtUser.objects.filter(id=data["id"]).exists():
					pass
				else:
					# 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():
						FtUser.objects.create(
							id=data["id"],
							login=data["login"],
							is_alive=True,
							coalition=Coalition.objects.get(id=int(coalition_data[0]["coalition_id"])),
							coalition_point=coalition_data[0]["score"],
						)
					else:
						FtUser.objects.create(
							id=data["id"],
							login=data["login"],
							is_alive=False,
						)
		return render(request, "manager/manage_complete.html", {"task": "MakeFtUser"})
Ejemplo n.º 4
0
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
Ejemplo n.º 5
0
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
Ejemplo n.º 6
0
 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": "피신 유저의 정보를 업데이트 했습니다."})
Ejemplo n.º 7
0
    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"})
Ejemplo n.º 8
0
 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"})