Image Favourites

Add favourites for images.

当前为 2016-06-05 提交的版本,查看 最新版本

  1. // ==UserScript==
  2. // @name Image Favourites
  3. // @namespace PXgamer
  4. // @version 0.4
  5. // @description Add favourites for images.
  6. // @author PXgamer
  7. // @include *kat.cr/user/*/albums/
  8. // @include *kat.cr/user/*/recentimages/
  9. // @grant GM_getValue
  10. // @grant GM_setValue
  11. // @require https://code.jquery.com/jquery-1.12.3.min.js
  12. // ==/UserScript==
  13. /*jshint multistr: true */
  14.  
  15. (function() {
  16. 'use strict';
  17.  
  18. var dataVal = GM_getValue('favouriteImagesData', '[]');
  19. var data = JSON.parse(dataVal);
  20. var htmlD = '';
  21.  
  22. $('a.turnoverButton.siteButton.bigButton[href$="/albums/"]').before('<a class="turnoverButton siteButton bigButton favouriteImages">Favourites</a><a class="favouritePop" style="display: none;"></a>');
  23. if (location.href.indexOf('/recentimages/') > -1) {
  24. $('a[href^="/image/delete/"][data-id].deleteImageJs').after('<a class="favouriteImageJS topmarg2px absolute" style="margin-left: 25px;"><i class="ka ka16 ka-star"></i></a>');
  25. }
  26.  
  27. $('a.favouriteImages').on('click', function() {
  28. $('a.turnoverButton').removeClass('active');
  29. $('a.favouriteImages').addClass('active');
  30. $('h2').text('Favourites');
  31. $('a[href="/account/newalbum/"]').parent().hide();
  32. $('.pages.botmarg5px.floatright').hide();
  33. var imgCan = $('div.galleryThumbSizerStills.inlineblock:first').parent();
  34. imgCan.html('');
  35.  
  36. if (data.length === 0) {
  37. imgCan.append('<h3>No Favourites Were Found!</h3>');
  38. }
  39. else {
  40. for (var i = 0; i < data.length; i++) {
  41. imgCan.append('<div class="galleryThumbSizerStills inlineblock">\
  42. <a data-point="'+i+'" class="topmarg2px leftmarg2px absolute favRemove"><i class="ka ka16 ka-delete ka-green"></i></a>\
  43. <a data-href="'+data[i].imageUrl+'" class="galleryThumb favouritePop">\
  44. <img class="lazyjs" data-id="'+data[i].imageId+'" data-original="'+data[i].imageUrl+'" src="'+data[i].imageUrl+'" style="display: inline;" />\
  45. </a>\
  46. </div>');
  47. }
  48. }
  49. $('a.favouritePop').css('cursor', 'pointer');
  50.  
  51. $('a.favouritePop').on('click', function() {
  52. var imgLoc = $(this).attr('data-href');
  53. var w = ($( window ).width()/100*80);
  54. var h = ($( window ).height()/100*80);
  55. htmlD = '<div style="width: '+w+'px; height: '+h+'px; overflow: auto; scroll: hidden; position:relative;"><img src="'+imgLoc+'" style="width: '+(w-5)+'px; height: '+(h-5)+'px;" /></div>';
  56. $.fancybox(htmlD);
  57. });
  58.  
  59. $('a.favRemove').on('click', function() {
  60. var dPoint = $(this).attr('data-point');
  61. data.splice(dPoint, 1);
  62. $(this).parent().remove();
  63. GM_setValue('favouriteImagesData', JSON.stringify(data));
  64. });
  65. });
  66.  
  67. $('a.favouriteImageJS').on('click', function() {
  68. var dataId = $(this).prev('a.deleteImageJs').attr('data-id');
  69. var imageUrl = $(this).next('a.galleryThumb').attr('href');
  70. var dataArr = {
  71. 'imageId': dataId,
  72. 'imageUrl': imageUrl
  73. };
  74. data.push(dataArr);
  75. GM_setValue('favouriteImagesData', JSON.stringify(data));
  76. });
  77. })();