forked from lbryio/lbry.com
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathAcquisitionActions.class.php
112 lines (93 loc) · 3.55 KB
/
AcquisitionActions.class.php
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
<?php
class AcquisitionActions extends Actions
{
public static function executeFollowCampaign(string $claimName)
{
$claim = ChainQuery::findChannelClaim($claimName);
if (!$claim || !$claim['source_url']) {
Controller::redirect('/');
}
$title = $claim['title'] ?: $claim['name'];
$coverUrl = $claim['source_url'];
return ['acquisition/follow_campaign', [
'claim' => $claim,
'claimCount' => ChainQuery::countClaimsInChannel($claim['claim_id']),
'title' => $title,
'coverUrl' => $coverUrl,
]];
}
public static function executeYouTube(string $version = '')
{
$errorMessage = Request::getParam('error_message', '');
if (Session::getFlash(Session::KEY_YOUTUBE_SYNC_ERROR)) {
$errorMessage = Session::getFlash(Session::KEY_YOUTUBE_SYNC_ERROR);
}
return ['acquisition/youtube', [
'reward' => LBRY::youtubeReward(),
'error_message' => $errorMessage
]];
}
public static function executeVerify(string $token)
{
Response::disableHttpCache();
return ['acquisition/verify', ['token' => $token]];
}
public static function executeAutoVerify()
{
Response::disableHttpCache();
return ['acquisition/auto-verify'];
}
public static function executeYoutubeToken()
{
Response::disableHttpCache();
$channelName = Request::encodeStringFromUser($_POST['desired_lbry_channel_name']);
$immediateSync = (boolean)$_POST['immediate_sync'];
if ($channelName && $channelName[0] !== "@") {
$channelName = '@' . $channelName;
}
$token = LBRY::connectYoutube($channelName, $immediateSync);
if ($token['success'] && $token['data']) {
Controller::redirect($token['data']);
} else {
Session::setFlash(Session::KEY_YOUTUBE_SYNC_ERROR, $token['error'] ?? "An unknown error occured.");
Controller::redirect('/youtube');
}
}
public static function executeYoutubeStatus(string $token)
{
Response::disableHttpCache();
$data = LBRY::statusYoutube($token);
if (!$data['success']) {
Session::setFlash(Session::KEY_YOUTUBE_SYNC_ERROR, $data['error'] ?? "Error fetching your sync status.");
Controller::redirect('/youtube');
}
return ['acquisition/youtube_status', [
'token' => $token,
'status_token' => $data,
'error_message' => Session::getFlash(Session::KEY_YOUTUBE_SYNC_ERROR)
]];
}
public static function actionYoutubeEdit($status_token, $channel_name, $email, $sync_consent)
{
$current_value = LBRY::statusYoutube($status_token);
if ($current_value['data']['email'] == $email) {
$status = LBRY::editYoutube($status_token, $channel_name, null, $sync_consent);
} else {
$status = LBRY::editYoutube($status_token, $channel_name, $email, $sync_consent);
}
if ($status['success'] == false) {
Session::setFlash(Session::KEY_YOUTUBE_SYNC_ERROR, $status['error']);
Controller::redirect("/youtube/status/". $status_token);
} else {
Controller::redirect("/youtube/status/" . $status_token);
}
}
public static function executeYoutubeEdit()
{
return ['acquisition/youtube_edit'];
}
public static function executeRedirectYoutube()
{
return ['acquisition/youtube_status_redirect'];
}
}