-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathpopup.js
67 lines (65 loc) · 2.38 KB
/
popup.js
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
const MYLISTURL = "https://www.nicovideo.jp/mylist/";
$(function() {
$('#id_mylist').focus();
check();
$('.item').click(function() {
console.log('clicked');
console.log(this);
chrome.tabs.create({url: $(this).find('a').attr('href')});
window.close();
});
$('#addbutton').click(function() {
var mylistId = $('#id_mylist').val();
if (mylistId != null && mylistId != '' && mylistId.match(/^[0-9]{7,8}$/)) {
var mylist = JSON.parse(localStorage.getItem('mylist'));
mylist.push(mylistId);
localStorage.setItem('mylist', JSON.stringify(mylist));
$('#id_mylist').val('added!');
} else {
$('#id_mylist').val('error!');
}
});
});
function check() {
var mylist = JSON.parse(localStorage.getItem('mylist'));
for (var i = 0; i < mylist.length; i++) {
var mylistId = mylist[i];
// localStorage #{mylistId} has JSON Object of unread contents
// {link: '', title: '', videoId: '', thumbnail: ''}
var unreadObjects = JSON.parse(localStorage.getItem(mylistId));
if (unreadObjects != null) {
var mylistDiv = $('<div/>');
mylistDiv.addClass('unreadMylist');
for (var j = 0; j < unreadObjects.length; j++) {
var unreadObj = unreadObjects[j];
var itemObj = $('<div/>');
itemObj.addClass('item');
var imgObj = $('<img/>');
$(imgObj).attr('src', unreadObj.thumbnail);
var titleObj = $('<p/>');
titleObj.addClass('itemTitle');
var linkObj = $('<a/>');
$(linkObj).attr('href', unreadObj.link).text(unreadObj.title);
$(linkObj).addClass('link');
$(titleObj).html(linkObj);
$(itemObj).append(imgObj).append(titleObj);
$(mylistDiv).prepend(itemObj);
// Only show first 10 objects
if (j === 9) {
let moreUnreadItemObj = $('<div/>');
$(moreUnreadItemObj).addClass('item');
let moreUnreadTitleObj = $('<p/>');
let unreadMoreCount = unreadObjects.length - j - 1;
$(moreUnreadTitleObj).html('このマイリストはあと' + unreadMoreCount +'件の未読があります。');
$(moreUnreadItemObj).append(moreUnreadTitleObj);
$(mylistDiv).prepend(moreUnreadItemObj);
break;
}
}
if ($(mylistDiv).html() != '') {
$(mylistDiv).append($('<div/>').addClass('item'));
$('#result').prepend(mylistDiv);
}
}
}
}