updates
parent
9f2f0de5c0
commit
949bfcf38f
|
|
@ -77,11 +77,11 @@ public class authToken
|
||||||
user_perm = GlobalClass.appsettings("Admin:perm");
|
user_perm = GlobalClass.appsettings("Admin:perm");
|
||||||
user_isLogin = true;
|
user_isLogin = true;
|
||||||
|
|
||||||
int intMin = 20;
|
int intMin = 180;
|
||||||
|
|
||||||
if (tokenItem.token_isremember == "Y")
|
if (tokenItem.token_isremember == "Y")
|
||||||
{
|
{
|
||||||
intMin = 60 * 24 * 7;
|
intMin = 60 * 24 * 14;
|
||||||
}
|
}
|
||||||
|
|
||||||
dbConn.sqlConnection().Execute("update token set token_expireddate = @token_expireddate " +
|
dbConn.sqlConnection().Execute("update token set token_expireddate = @token_expireddate " +
|
||||||
|
|
|
||||||
|
|
@ -29,7 +29,7 @@ public class youtubeUpdateClass : IHostedService, IDisposable
|
||||||
{
|
{
|
||||||
_timer = new Timer(DoWork, null,
|
_timer = new Timer(DoWork, null,
|
||||||
TimeSpan.Zero,
|
TimeSpan.Zero,
|
||||||
TimeSpan.FromSeconds(15 * 60));
|
TimeSpan.FromSeconds(60 * 60));
|
||||||
return Task.CompletedTask;
|
return Task.CompletedTask;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -104,11 +104,16 @@ public class youtubeUpdateClass : IHostedService, IDisposable
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
try
|
||||||
|
{
|
||||||
dynamic youtubePlaylistObj;
|
dynamic youtubePlaylistObj;
|
||||||
youtubePlaylistObj = JsonConvert.DeserializeObject(youtubePlaylistJson);
|
youtubePlaylistObj = JsonConvert.DeserializeObject(youtubePlaylistJson);
|
||||||
string videoIdList = "";
|
string videoIdList = "";
|
||||||
|
|
||||||
foreach (var item in youtubePlaylistObj.items) {
|
foreach (var item in youtubePlaylistObj.items)
|
||||||
|
{
|
||||||
videoIdList += item.snippet.resourceId.videoId + ",";
|
videoIdList += item.snippet.resourceId.videoId + ",";
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -146,10 +151,12 @@ public class youtubeUpdateClass : IHostedService, IDisposable
|
||||||
int videosNum = 0;
|
int videosNum = 0;
|
||||||
List<youtubeDetail> youtubeDetailList = new List<youtubeDetail>();
|
List<youtubeDetail> youtubeDetailList = new List<youtubeDetail>();
|
||||||
|
|
||||||
foreach (var item in youtubeVideoObj.items) {
|
foreach (var item in youtubeVideoObj.items)
|
||||||
|
{
|
||||||
|
|
||||||
|
|
||||||
try {
|
try
|
||||||
|
{
|
||||||
totalViewNum += (int)item.statistics.viewCount;
|
totalViewNum += (int)item.statistics.viewCount;
|
||||||
videosNum++;
|
videosNum++;
|
||||||
youtubeDetail objDetail = new youtubeDetail();
|
youtubeDetail objDetail = new youtubeDetail();
|
||||||
|
|
@ -168,7 +175,8 @@ public class youtubeUpdateClass : IHostedService, IDisposable
|
||||||
objDetail.youtubeDetail_likeCount = (int)item.statistics.likeCount;
|
objDetail.youtubeDetail_likeCount = (int)item.statistics.likeCount;
|
||||||
objDetail.youtubeDetail_favoriteCount = (int)item.statistics.favoriteCount;
|
objDetail.youtubeDetail_favoriteCount = (int)item.statistics.favoriteCount;
|
||||||
|
|
||||||
try {
|
try
|
||||||
|
{
|
||||||
objDetail.youtubeDetail_thumbnails = item.snippet.thumbnails.maxres.url;
|
objDetail.youtubeDetail_thumbnails = item.snippet.thumbnails.maxres.url;
|
||||||
}
|
}
|
||||||
catch { objDetail.youtubeDetail_thumbnails = ""; }
|
catch { objDetail.youtubeDetail_thumbnails = ""; }
|
||||||
|
|
@ -179,7 +187,8 @@ public class youtubeUpdateClass : IHostedService, IDisposable
|
||||||
objDetail.youtubeDetail_json = JsonConvert.SerializeObject(item);
|
objDetail.youtubeDetail_json = JsonConvert.SerializeObject(item);
|
||||||
|
|
||||||
youtubeDetailList.Add(objDetail);
|
youtubeDetailList.Add(objDetail);
|
||||||
} catch (Exception ex)
|
}
|
||||||
|
catch (Exception ex)
|
||||||
{
|
{
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
@ -192,7 +201,8 @@ public class youtubeUpdateClass : IHostedService, IDisposable
|
||||||
|
|
||||||
newYoutube.youtube_avgViewCount = (int)System.Math.Floor(avg);
|
newYoutube.youtube_avgViewCount = (int)System.Math.Floor(avg);
|
||||||
|
|
||||||
conn.Execute("update youtube set youtube_revoke = 'Y' where kol_uid = @kol_uid and kolMedia_uid = @kolMedia_uid", new { kol_uid = mediaItem.kol_uid, kolMedia_uid = mediaItem.kolMedia_uid });
|
//conn.Execute("update youtube set youtube_revoke = 'Y' where kol_uid = @kol_uid and kolMedia_uid = @kolMedia_uid", new { kol_uid = mediaItem.kol_uid, kolMedia_uid = mediaItem.kolMedia_uid });
|
||||||
|
conn.Execute("update youtube set youtube_revoke = 'Y' where kol_uid = @kol_uid ", new { kol_uid = mediaItem.kol_uid });
|
||||||
|
|
||||||
conn.Insert(youtubeDetailList);
|
conn.Insert(youtubeDetailList);
|
||||||
conn.Insert(newYoutube);
|
conn.Insert(newYoutube);
|
||||||
|
|
@ -211,6 +221,22 @@ public class youtubeUpdateClass : IHostedService, IDisposable
|
||||||
successLog.updateLog_uid = channel_id;
|
successLog.updateLog_uid = channel_id;
|
||||||
|
|
||||||
conn.Insert(successLog);
|
conn.Insert(successLog);
|
||||||
|
}
|
||||||
|
catch (Exception ex) {
|
||||||
|
updateLog successLog = new updateLog();
|
||||||
|
successLog.updateLog_text = "此Youtube帳號 " + mediaItem.kolMedia_accountName + "(" + mediaItem.kolMedia_displayName + ") Youtube資料更新失敗,失敗原因 " + ex.Message;
|
||||||
|
successLog.updateLog_kolMedia_uid = mediaItem.kolMedia_uid;
|
||||||
|
successLog.updateLog_kolMedia_accountName = mediaItem.kolMedia_accountName;
|
||||||
|
successLog.updateLog_kolMedia_displayName = mediaItem.kolMedia_displayName;
|
||||||
|
successLog.updateLog_kol_uid = mediaItem.kol_uid;
|
||||||
|
successLog.updateLog_type = "YouTube";
|
||||||
|
successLog.updateLog_result = "failed";
|
||||||
|
successLog.updateLog_uid = channel_id;
|
||||||
|
|
||||||
|
conn.Insert(successLog);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
updateLog failedLog = new updateLog();
|
updateLog failedLog = new updateLog();
|
||||||
|
|
|
||||||
|
|
@ -1,21 +1,15 @@
|
||||||
{
|
{
|
||||||
"iisSettings": {
|
|
||||||
"windowsAuthentication": false,
|
|
||||||
"anonymousAuthentication": true,
|
|
||||||
"iisExpress": {
|
|
||||||
"applicationUrl": "http://localhost:59933",
|
|
||||||
"sslPort": 44377
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"profiles": {
|
"profiles": {
|
||||||
"Journeys_WantHome": {
|
"Journeys_WantHome": {
|
||||||
"commandName": "Project",
|
"commandName": "Project",
|
||||||
"dotnetRunMessages": true,
|
|
||||||
"launchBrowser": true,
|
"launchBrowser": true,
|
||||||
"applicationUrl": "https://localhost:7111;http://localhost:5223",
|
|
||||||
"environmentVariables": {
|
"environmentVariables": {
|
||||||
"ASPNETCORE_ENVIRONMENT": "Development"
|
"ASPNETCORE_ENVIRONMENT": "Development"
|
||||||
}
|
},
|
||||||
|
"dotnetRunMessages": true,
|
||||||
|
"applicationUrl": "https://localhost:7111;http://localhost:5223",
|
||||||
|
"nativeDebugging": false,
|
||||||
|
"sqlDebugging": false
|
||||||
},
|
},
|
||||||
"IIS Express": {
|
"IIS Express": {
|
||||||
"commandName": "IISExpress",
|
"commandName": "IISExpress",
|
||||||
|
|
@ -23,6 +17,24 @@
|
||||||
"environmentVariables": {
|
"environmentVariables": {
|
||||||
"ASPNETCORE_ENVIRONMENT": "Development"
|
"ASPNETCORE_ENVIRONMENT": "Development"
|
||||||
}
|
}
|
||||||
|
},
|
||||||
|
"WSL": {
|
||||||
|
"commandName": "WSL2",
|
||||||
|
"launchBrowser": true,
|
||||||
|
"launchUrl": "https://localhost:7111",
|
||||||
|
"environmentVariables": {
|
||||||
|
"ASPNETCORE_ENVIRONMENT": "Development",
|
||||||
|
"ASPNETCORE_URLS": "https://localhost:7111;http://localhost:5223"
|
||||||
|
},
|
||||||
|
"distributionName": ""
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"iisSettings": {
|
||||||
|
"windowsAuthentication": false,
|
||||||
|
"anonymousAuthentication": true,
|
||||||
|
"iisExpress": {
|
||||||
|
"applicationUrl": "http://localhost:59933",
|
||||||
|
"sslPort": 44377
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -319,20 +319,20 @@
|
||||||
<!-- .form-group -->
|
<!-- .form-group -->
|
||||||
<div class="form-group">
|
<div class="form-group">
|
||||||
<div class="form-label-group">
|
<div class="form-label-group">
|
||||||
<input type="text" id="kolMedia_url" class="form-control" value="" placeholder="網址" maxlength="50" required=""> <label for="kolMedia_url">網址</label>
|
<input type="text" id="kolMedia_url" class="form-control" value="" placeholder="網址" maxlength="80" required=""> <label for="kolMedia_url">網址</label>
|
||||||
</div>
|
</div>
|
||||||
</div><!-- /.form-group -->
|
</div><!-- /.form-group -->
|
||||||
|
|
||||||
<!-- .form-group -->
|
<!-- .form-group -->
|
||||||
<div class="form-group">
|
<div class="form-group">
|
||||||
<div class="form-label-group">
|
<div class="form-label-group">
|
||||||
<input type="text" id="kolMedia_accountName" class="form-control" value="" placeholder="社群帳號" maxlength="20" required=""> <label for="kolMedia_accountName">社群帳號</label>
|
<input type="text" id="kolMedia_accountName" class="form-control" value="" placeholder="社群帳號" maxlength="30" required=""> <label for="kolMedia_accountName">社群帳號</label>
|
||||||
</div>
|
</div>
|
||||||
</div><!-- /.form-group -->
|
</div><!-- /.form-group -->
|
||||||
<!-- .form-group -->
|
<!-- .form-group -->
|
||||||
<div class="form-group">
|
<div class="form-group">
|
||||||
<div class="form-label-group">
|
<div class="form-label-group">
|
||||||
<input type="text" id="kolMedia_displayName" class="form-control" value="" placeholder="社群名稱" maxlength="20" required=""> <label for="kolMedia_displayName">社群名稱</label>
|
<input type="text" id="kolMedia_displayName" class="form-control" value="" placeholder="社群名稱" maxlength="30" required=""> <label for="kolMedia_displayName">社群名稱</label>
|
||||||
</div>
|
</div>
|
||||||
</div><!-- /.form-group -->
|
</div><!-- /.form-group -->
|
||||||
<!-- .form-group -->
|
<!-- .form-group -->
|
||||||
|
|
|
||||||
|
|
@ -63,7 +63,7 @@ $(document).ready(function () {
|
||||||
var mediaArray = [];
|
var mediaArray = [];
|
||||||
var tags = $('#kol_tags').val();
|
var tags = $('#kol_tags').val();
|
||||||
var tagsStr = "";
|
var tagsStr = "";
|
||||||
|
var err_msg = "";
|
||||||
var src = $('#fileupload-avatar').parent().children('img').prop('src');
|
var src = $('#fileupload-avatar').parent().children('img').prop('src');
|
||||||
var origin = location.origin;
|
var origin = location.origin;
|
||||||
src = src.replace(origin, '');
|
src = src.replace(origin, '');
|
||||||
|
|
@ -98,17 +98,30 @@ $(document).ready(function () {
|
||||||
kolMedia_fansNum: RemoveComma($(this).find('td').eq(4).text().trim())
|
kolMedia_fansNum: RemoveComma($(this).find('td').eq(4).text().trim())
|
||||||
}
|
}
|
||||||
kolMedia_accountName = $(this).find('td').eq(2).text().trim();
|
kolMedia_accountName = $(this).find('td').eq(2).text().trim();
|
||||||
|
kolMedia_url22 = $(this).find('td').eq(1).text().trim();
|
||||||
if ($(this).find('td').eq(0).text().trim() == 'YouTube') {
|
if ($(this).find('td').eq(0).text().trim() == 'YouTube') {
|
||||||
if (kolMedia_accountName.substring(0, 1) != '@') {
|
if (kolMedia_accountName.substring(0, 1) != '@') {
|
||||||
err_msg += $(this).find('td').eq(3).text().trim() + " 此YouTube頻道資料有誤,YouTube的帳號名稱第一碼應該為@字元\n";
|
err_msg += $(this).find('td').eq(3).text().trim() + " 此YouTube頻道資料有誤,YouTube的帳號名稱第一碼應該為@字元\n";
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (kolMedia_url22.indexOf("youtube") >= 0) {
|
||||||
|
err_msg += kolMedia_url22 + " 此Youtube網址有誤\n";
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if ($(this).find('td').eq(0).text().trim() == 'Facebook') {
|
||||||
|
if (kolMedia_url22.substring(0, 4) != 'http') {
|
||||||
|
err_msg += $(this).find('td').eq(3).text().trim() + " 此Facebook網址有誤\n";
|
||||||
|
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
mediaArray.push(item);
|
mediaArray.push(item);
|
||||||
});
|
});
|
||||||
|
|
||||||
var err_msg = "";
|
|
||||||
|
|
||||||
if (kol_name == "") {
|
if (kol_name == "") {
|
||||||
err_msg += "KOL頻道名稱未填!\n";
|
err_msg += "KOL頻道名稱未填!\n";
|
||||||
|
|
|
||||||
|
|
@ -354,7 +354,7 @@ $(document).ready(function () {
|
||||||
checkboxClick(this);
|
checkboxClick(this);
|
||||||
});
|
});
|
||||||
},
|
},
|
||||||
order: [[5, 'desc']],
|
order: [[1, 'desc']],
|
||||||
info: true,
|
info: true,
|
||||||
search: "搜尋:",
|
search: "搜尋:",
|
||||||
searching: true,
|
searching: true,
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue