· 5 years ago · Jan 18, 2021, 05:20 PM
1if ($this->isGranted('IS_AUTHENTICATED_FULLY'))
2 {
3 $episode_number = $episode->getNumber();
4 $saison_number = $episode->getSaison()->getId();
5 $model = "";
6 $link_to_update = [];
7 $links = [];
8 $link_vostfr = "";
9 $link_vf = "";
10 $folder_saison_ids = [
11 "S01" => "37559",
12 "S02" => "37560",
13 "S03" => "37561",
14 "S04" => "37562",
15 "S05" => "37563",
16 "S06" => "37564",
17 "S07" => "37565"];
18 $folder_id = "";
19
20 if($saison_number >= 10 && $episode_number < 10){
21 $model = "#S" . $saison_number . "E" . $episode_number ."#";
22 $folder_id = $folder_saison_ids["S" . $saison_number];
23 }
24 if($saison_number >= 10 && $episode_number >= 10){
25 $model = "#S" . $saison_number . "E" . $episode_number ."#";
26 $folder_id = $folder_saison_ids["S" . $saison_number];
27 }
28 if($saison_number < 10 && $episode_number >= 10){
29 $model = "#S0" . $saison_number . "E" . $episode_number ."#";
30 $folder_id = $folder_saison_ids["S0" . $saison_number];
31 }
32 if($saison_number < 10 && $episode_number < 10){
33 $model = "#S0" . $saison_number . "E0" . $episode_number ."#";
34 $folder_id = $folder_saison_ids["S0" . $saison_number];
35 }
36
37 $curl = new Curl();
38
39 $fileInfo = $curl->get('https://doodapi.com/api/folder/list',[
40 'key' => '6449trbpjc3kcir0rl0j',
41 'fld_id' => $folder_id
42 ]);
43 $files = json_decode($fileInfo->getResponse(), true);
44 $array_files = $files["result"]["files"];
45
46 if(is_array($array_files) && count($array_files) > 0)
47 {
48 foreach ($array_files as $key => $value)
49 {
50 $links[$value["title"]] = "https://dood.to/e/" . $value["file_code"];
51
52 }
53 if (count($links) > 0)
54 {
55 foreach ($links as $key => $value)
56 {
57 if (preg_match($model, $key))
58 {
59 $link_to_update[$key] = $value;
60 }
61 }
62 }
63 if (count($link_to_update) > 0)
64 {
65 foreach ($link_to_update as $key => $value)
66 {
67 if (preg_match("#VOSTFR#", $key))
68 {
69 $link_vostfr = $value;
70 }
71 if (preg_match("#VF#", $key)) {
72
73 $link_vf = $value;
74 }
75 }
76 }
77 if ($link_vostfr && $link_vf) {
78 if ($link_vostfr !== $episode->getOpenloadLinkVostfr() && $link_vf !== $episode->getOpenloadLinkVf()) {
79 $episode->setOpenloadLinkVf($link_vf);
80 $episode->setOpenloadLinkVostfr($link_vostfr);
81 $this->em->persist($episode);
82 $this->em->flush();
83 $this->addFlash('success', 'Les liens DOODSTREAM pour: ' . $episode->getSaison() . " EPISODE: " . $episode->getNumber() . " / " . $episode->getTitle() . ' ont été edités!');
84 return $this->redirectToRoute("admin.episodes.index");
85 } else {
86 $this->addFlash('warning', 'Les liens DOODSTREAM pour: ' . $episode->getSaison() . " EPISODE: " . $episode->getNumber() . " / " . $episode->getTitle() . ' sont déjà à jour!');
87 return $this->redirectToRoute("admin.episodes.index");
88 }
89 }
90 } else{
91 $this->addFlash('error', 'Les liens DOODSTREAM pour: ' . strtoupper($episode->getSaison()) . " EPISODE: ". $episode->getNumber() . " / " .$episode->getTitle() . ' ont pas été edités! (too many request too many request vers API 3max each 2-3mins)');
92 return $this->redirectToRoute("admin.episodes.index");
93 }
94
95 }
96 return $this->redirectToRoute('home');