Advertisement
ctrl_c_v

images

Apr 14th, 2017
588
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Lua 8.68 KB | None | 0 0
  1. function Initialize()
  2.     dofile(SKIN:MakePathAbsolute('configs.lua'))
  3.     dofile(SKIN:MakePathAbsolute('functions.lua'))
  4.  
  5.     MeasureGetImageURL = SKIN:GetMeasure('MeasureGetImageURL')
  6.     MeasureGetImageEx = SKIN:GetMeasure('MeasureGetImageEx')
  7.     MeasureGetImagePostingURL = SKIN:GetMeasure('MeasureGetImagePostingURL')
  8.     MeasureCountImageFiles = SKIN:GetMeasure('MeasureCountImageFiles')
  9.     MeasureGetImageName = SKIN:GetMeasure('MeasureGetImageName')
  10.     MeterImage = SKIN:GetMeter('MeterImage')
  11.  
  12.     SKIN:Bang('[!SetOptionGroup PassiveMeasure Disabled 1]')
  13.     SKIN:Bang('[!SetOptionGroup PassiveMeasure UpdateDivider -1]')
  14.     SKIN:Bang('[!SetOptionGroup PassiveMeter Hidden 1]')
  15.     SKIN:Bang('[!SetOptionGroup PassiveMeter UpdateDivider -1]')
  16.     SKIN:Bang('[!SetOption MeasureLuaScript UpdateDivider ' .. UpdateDivider .. ']')
  17.  
  18.     if not ImageSources or #ImageSources == 0 then
  19.         SKIN:Bang('[!SetOption MeterStartGuide Hidden 0]')
  20.         Disabled = true
  21.         return
  22.     end
  23.  
  24.     if ChangeWallpaper then
  25.         SKIN:Bang('[!SetOption MeterController Hidden 0]')
  26.         SKIN:Bang('[!SetOption MeterControllerPrev Hidden 0]')
  27.         SKIN:Bang('[!SetOption MeterControllerOpen Hidden 0]')
  28.         SKIN:Bang('[!SetOption MeterControllerNext Hidden 0]')
  29.     else
  30.         SKIN:Bang('[!SetOption MeterBackground Hidden 0]')
  31.         SKIN:Bang('[!SetOption MeterImage Hidden 0]')
  32.         SKIN:Bang('[!SetVariable ImageMaxWidth ' .. ImageMaxWidth .. ']')
  33.         SKIN:Bang('[!SetVariable ImageMaxHeight ' .. ImageMaxHeight .. ']')
  34.     end
  35.  
  36.     Disabled = false
  37.     DidFirstDL = false
  38.     ConnectRemaining = 0
  39.     ImageNo = 1
  40.     ImageEx = ''
  41.     ImagePostingURL = ''
  42.     ImageSourcesIndex = 1
  43.     LastFileName = ''
  44.     ShowedImageHistories = {}
  45.     ShowedImageHistoriesIndex = 1
  46.     DateTable = os.date('*t')
  47.  
  48.     math.randomseed(os.time())
  49.     math.random(1)
  50.  
  51.     PreparaImageSources();
  52. end
  53.  
  54. function Update()
  55.     if Disabled then
  56.         return
  57.     end
  58.  
  59.     DateTable = os.date('*t')
  60.  
  61.     if ConnectRemaining > 0 then
  62.         ConnectRemaining = ConnectRemaining - 1
  63.     end
  64.  
  65.     if not DidFirstDL then
  66.         SKIN:Bang('[!EnableMeasureGroup PassiveMeasure]')
  67.         DidFirstDL = true
  68.     end
  69.  
  70.     if not SetImageSourcesIndex() then
  71.         return
  72.     end
  73.  
  74.     if ImageSources[ImageSourcesIndex]['ImageName'] then
  75.         InitShowImage('ImageName', ImageSources[ImageSourcesIndex]['ImageName'])
  76.     elseif ImageSources[ImageSourcesIndex]['ImageDir'] then
  77.         SKIN:Bang('[!SetOption MeasureGetImageDir Path "'
  78.             .. ImageSources[ImageSourcesIndex]['ImageDir'] .. '"]')
  79.         SKIN:Bang('[!CommandMeasure MeasureGetImageDir Update]')
  80.         SKIN:Bang('[!UpdateMeasure MeasureGetImageDir]')
  81.     elseif ImageSources[ImageSourcesIndex]['PageURL'] then
  82.         ConnectRemaining = ConnectRate
  83.  
  84.         if ImageSources[ImageSourcesIndex]['ImageURLRegExp'] then
  85.             SKIN:Bang('[!SetOption MeasureGetImageURL RegExp """'
  86.                 .. ImageSources[ImageSourcesIndex]['ImageURLRegExp'] .. '"""]')
  87.         else
  88.             SKIN:Bang('[!SetOption MeasureGetImageURL RegExp """' .. ImageURLRegExp .. '"""]')
  89.         end
  90.         SKIN:Bang('[!UpdateMeasure MeasureGetImageURL]')
  91.  
  92.         if ImageSources[ImageSourcesIndex]['ImagePostingURLRegExp'] then
  93.             SKIN:Bang('[!SetOption MeasureGetImagePostingURL RegExp """'
  94.                 .. ImageSources[ImageSourcesIndex]['ImagePostingURLRegExp'] .. '"""]')
  95.         else
  96.             SKIN:Bang('[!SetOption MeasureGetImagePostingURL RegExp """'
  97.                 .. ImagePostingURLRegExp .. '"""]')
  98.         end
  99.         SKIN:Bang('[!UpdateMeasure MeasureGetImagePostingURL]')
  100.  
  101.         SKIN:Bang('[!SetOption MeasureGetSite URL '
  102.             .. ImageSources[ImageSourcesIndex]['PageURL'] .. ']')
  103.         SKIN:Bang('[!CommandMeasure MeasureGetSite Update]')
  104.         SKIN:Bang('[!UpdateMeasure MeasureGetSite]')
  105.     end
  106. end
  107.  
  108. function SetImageSourcesIndex()
  109.     local TargetPageIndexes = {}
  110.  
  111.     for key, value in pairs (ImageSources) do
  112.         local ok = true
  113.         if value['PageURL'] and ConnectRemaining ~= 0 then
  114.             ok = false
  115.         else
  116.             for key2, value2 in pairs (value) do
  117.                 if DateTable[key2] then
  118.                     if not InTable(value2, DateTable[key2]) then
  119.                         ok = false
  120.                         break
  121.                     end
  122.                 end
  123.             end
  124.         end
  125.  
  126.         if ok then
  127.             table.insert(TargetPageIndexes, key)
  128.         end
  129.     end
  130.  
  131.     if #TargetPageIndexes == 0 then
  132.         return false
  133.     end
  134.  
  135.     local rand = math.random(1, #TargetPageIndexes)
  136.     ImageSourcesIndex = TargetPageIndexes[rand]
  137.  
  138.     return true
  139. end
  140.  
  141. function InitDLImage()
  142.     local ImageURL = MeasureGetImageURL:GetStringValue()
  143.     if ImageSources[ImageSourcesIndex]['BaseURL'] then
  144.         ImageURL = ImageSources[ImageSourcesIndex]['BaseURL'] .. ImageURL
  145.     end
  146.  
  147.     if IsDuplicatedImage(ImageURL) then
  148.         return
  149.     end
  150.  
  151.     ImageEx = MeasureGetImageEx:GetStringValue()
  152.     ImageEx = string.lower(ImageEx)
  153.  
  154.     SKIN:Bang('[!SetOption MeasureDLImage URL ' .. ImageURL .. ']')
  155.     SKIN:Bang('[!SetOption MeasureDLImage DownloadFile image' .. ImageNo  .. '.' .. ImageEx .. ']')
  156.     SKIN:Bang('[!CommandMeasure MeasureDLImage Update]')
  157.     SKIN:Bang('[!UpdateMeasure MeasureDLImage]')
  158. end
  159.  
  160. function IsDuplicatedImage(ImageName)
  161.     if not DontDuplicatedChange then
  162.         return false
  163.     end
  164.  
  165.     if LastFileName == ImageName then
  166.         return true
  167.     end
  168.  
  169.     LastFileName = ImageName
  170.     return false;
  171. end
  172.  
  173. function InitShowImage(mode, ImagePath)
  174.     if mode == 'ImageName' then
  175.         if IsDuplicatedImage(ImagePath) then
  176.             return
  177.         end
  178.         ImagePostingURL = ImagePath
  179.     elseif mode == 'Dir' then
  180.         ImagePath = GetRandomImageName()
  181.         if IsDuplicatedImage(ImagePath) then
  182.             return
  183.         end
  184.         ImagePostingURL = ImageSources[ImageSourcesIndex]['ImageDir']
  185.     elseif mode == 'DL' then
  186.         ImagePath = SKIN:MakePathAbsolute('DownloadFile/image' .. ImageNo .. '.' .. ImageEx)
  187.         ImageNo = ImageNo + 1
  188.         if ImageNo > NumberOfImageFiles then
  189.             ImageNo = 1
  190.         end
  191.  
  192.         ImagePostingURL = MeasureGetImagePostingURL:GetStringValue()
  193.         if ImagePostingURL == '' then
  194.             ImagePostingURL = ImageSources[ImageSourcesIndex]['PageURL']
  195.         end
  196.     end
  197.  
  198.     if not ImagePath then
  199.         return
  200.     end
  201.  
  202.     ShowImage(ImagePath)
  203. end
  204.  
  205. function GetRandomImageName()
  206.     SKIN:Bang('[!UpdateMeasure MeasureCountImageFiles]')
  207.  
  208.     local FileCount = MeasureCountImageFiles:GetValue()
  209.     if FileCount == 0 then
  210.         return
  211.     end
  212.  
  213.     local rand = math.random(1, FileCount)
  214.     SKIN:Bang('[!SetOption MeasureGetImageName Index ' .. rand .. ']')
  215.     SKIN:Bang('[!UpdateMeasure MeasureGetImageName]')
  216.  
  217.     return MeasureGetImageName:GetStringValue()
  218. end
  219.  
  220. function ShowImage(ImagePath)
  221.     if ImagePath == 'prev' then
  222.         if ShowedImageHistoriesIndex < #ShowedImageHistories then
  223.             ShowedImageHistoriesIndex = ShowedImageHistoriesIndex + 1
  224.             ImagePath = ShowedImageHistories[ShowedImageHistoriesIndex]['ImagePath']
  225.             ImagePostingURL = ShowedImageHistories[ShowedImageHistoriesIndex]['ImagePostingURL']
  226.         else
  227.             return
  228.         end
  229.     elseif ImagePath == 'next' then
  230.         if ShowedImageHistoriesIndex > 1 then
  231.             ShowedImageHistoriesIndex = ShowedImageHistoriesIndex - 1
  232.             ImagePath = ShowedImageHistories[ShowedImageHistoriesIndex]['ImagePath']
  233.             ImagePostingURL = ShowedImageHistories[ShowedImageHistoriesIndex]['ImagePostingURL']
  234.         else
  235.             ConnectRemaining = 0
  236.             SKIN:Bang('[!UpdateMeasure MeasureLuaScript]')
  237.             return
  238.         end
  239.     else
  240.         ShowedImageHistoriesIndex = 1
  241.         table.insert(ShowedImageHistories, 1,
  242.             { ImagePath = ImagePath, ImagePostingURL = ImagePostingURL })
  243.         if #ShowedImageHistories > 6 then
  244.             table.remove(ShowedImageHistories, #ShowedImageHistories)
  245.         end
  246.     end
  247.    
  248.     if not ImagePath then
  249.         return
  250.     end
  251.  
  252.     if ChangeWallpaper then
  253.         SKIN:Bang('[!SetWallpaper "'.. ImagePath .. '" ' .. WallPaperPosition .. ']')
  254.         SKIN:Bang('[!SetOption MeterControllerOpen LeftMouseUpAction "' .. ImagePostingURL .. '"]')
  255.         SKIN:Bang('[!UpdateMeter MeterControllerOpen]')
  256.         return
  257.     end
  258.  
  259.     SKIN:Bang('[!SetOption MeterImage ImageName "' .. ImagePath .. '"]')
  260.     SKIN:Bang('[!SetOption MeterImage X ""]')
  261.     SKIN:Bang('[!SetOption MeterImage W ""]')
  262.     SKIN:Bang('[!SetOption MeterImage Y ""]')
  263.     SKIN:Bang('[!SetOption MeterImage H ""]')
  264.     SKIN:Bang('[!SetOption MeterImage MiddleMouseUpAction "' .. ImagePostingURL .. '"]')
  265.  
  266.     SKIN:Bang('[!UpdateMeter MeterImage]')
  267.  
  268.     local MeterImageWidth = MeterImage:GetW()
  269.     local MeterImageHeight = MeterImage:GetH()
  270.  
  271.     local X = 0
  272.     local W = ImageMaxWidth
  273.     if MeterImageWidth < ImageMaxWidth then
  274.         X = math.floor(ImageMaxWidth / 2 - MeterImageWidth / 2)
  275.         W = MeterImageWidth
  276.     end
  277.     SKIN:Bang('[!SetOption MeterImage X ' .. X .. ']')
  278.     SKIN:Bang('[!SetOption MeterImage W ' .. W .. ']')
  279.  
  280.     local Y = 0
  281.     local H = ImageMaxHeight
  282.     if MeterImageHeight < ImageMaxHeight then
  283.         Y = math.floor(ImageMaxHeight / 2 - MeterImageHeight / 2)
  284.         H = MeterImageHeight
  285.     end
  286.     SKIN:Bang('[!SetOption MeterImage Y ' .. Y .. ']')
  287.     SKIN:Bang('[!SetOption MeterImage H ' .. H .. ']')
  288.  
  289.     local PreserveAspectRatio = 0
  290.     if X == 0 or Y == 0 then
  291.         PreserveAspectRatio = 1
  292.     end
  293.  
  294.     SKIN:Bang('[!SetOption MeterImage PreserveAspectRatio ' .. PreserveAspectRatio .. ']')
  295.  
  296.     SKIN:Bang('[!UpdateMeter MeterImage]')
  297. end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement