QQWorld Auto Save Images - Version 1.5.6

Version Description

Download this release

Release Info

Developer qqworld
Plugin Icon 128x128 QQWorld Auto Save Images
Version 1.5.6
Comparing to
See all releases

Code changes from version 1.5.5 to 1.5.6

css/jquery-ui/images/ui-bg_diagonals-thick_15_0b3e6f_40x40.png ADDED
Binary file
css/jquery-ui/images/ui-bg_dots-medium_30_0b58a2_4x4.png ADDED
Binary file
css/jquery-ui/images/ui-bg_dots-small_20_333333_2x2.png ADDED
Binary file
css/jquery-ui/images/ui-bg_dots-small_30_a32d00_2x2.png ADDED
Binary file
css/jquery-ui/images/ui-bg_dots-small_40_00498f_2x2.png ADDED
Binary file
css/jquery-ui/images/ui-bg_flat_0_aaaaaa_40x100.png ADDED
Binary file
css/jquery-ui/images/ui-bg_flat_40_292929_40x100.png ADDED
Binary file
css/jquery-ui/images/ui-bg_gloss-wave_20_111111_500x100.png ADDED
Binary file
css/jquery-ui/images/ui-icons_00498f_256x240.png ADDED
Binary file
css/jquery-ui/images/ui-icons_98d2fb_256x240.png ADDED
Binary file
css/jquery-ui/images/ui-icons_9ccdfc_256x240.png ADDED
Binary file
css/jquery-ui/images/ui-icons_ffffff_256x240.png ADDED
Binary file
css/jquery-ui/jquery-ui.min.css ADDED
@@ -0,0 +1,7 @@
 
 
 
 
 
 
 
1
+ /*! jQuery UI - v1.11.1 - 2014-08-15
2
+ * http://jqueryui.com
3
+ * Includes: core.css, draggable.css, resizable.css, selectable.css, sortable.css, accordion.css, autocomplete.css, button.css, datepicker.css, dialog.css, menu.css, progressbar.css, selectmenu.css, slider.css, spinner.css, tabs.css, tooltip.css, theme.css
4
+ * To view and modify this theme, visit http://jqueryui.com/themeroller/?ffDefault=Arial%2Csans-serif&fwDefault=bold&fsDefault=1.3em&cornerRadius=4px&bgColorHeader=0b3e6f&bgTextureHeader=diagonals_thick&bgImgOpacityHeader=15&borderColorHeader=0b3e6f&fcHeader=f6f6f6&iconColorHeader=98d2fb&bgColorContent=111111&bgTextureContent=gloss_wave&bgImgOpacityContent=20&borderColorContent=000000&fcContent=d9d9d9&iconColorContent=9ccdfc&bgColorDefault=333333&bgTextureDefault=dots_small&bgImgOpacityDefault=20&borderColorDefault=333333&fcDefault=ffffff&iconColorDefault=9ccdfc&bgColorHover=00498f&bgTextureHover=dots_small&bgImgOpacityHover=40&borderColorHover=222222&fcHover=ffffff&iconColorHover=ffffff&bgColorActive=292929&bgTextureActive=flat&bgImgOpacityActive=40&borderColorActive=096ac8&fcActive=75abff&iconColorActive=00498f&bgColorHighlight=0b58a2&bgTextureHighlight=dots_medium&bgImgOpacityHighlight=30&borderColorHighlight=052f57&fcHighlight=ffffff&iconColorHighlight=ffffff&bgColorError=a32d00&bgTextureError=dots_small&bgImgOpacityError=30&borderColorError=cd0a0a&fcError=ffffff&iconColorError=ffffff&bgColorOverlay=aaaaaa&bgTextureOverlay=flat&bgImgOpacityOverlay=0&opacityOverlay=30&bgColorShadow=aaaaaa&bgTextureShadow=flat&bgImgOpacityShadow=0&opacityShadow=30&thicknessShadow=8px&offsetTopShadow=-8px&offsetLeftShadow=-8px&cornerRadiusShadow=8px
5
+ * Copyright 2014 jQuery Foundation and other contributors; Licensed MIT */
6
+
7
+ .ui-helper-hidden{display:none}.ui-helper-hidden-accessible{border:0;clip:rect(0 0 0 0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}.ui-helper-reset{margin:0;padding:0;border:0;outline:0;line-height:1.3;text-decoration:none;font-size:100%;list-style:none}.ui-helper-clearfix:before,.ui-helper-clearfix:after{content:"";display:table;border-collapse:collapse}.ui-helper-clearfix:after{clear:both}.ui-helper-clearfix{min-height:0}.ui-helper-zfix{width:100%;height:100%;top:0;left:0;position:absolute;opacity:0;filter:Alpha(Opacity=0)}.ui-front{z-index:100}.ui-state-disabled{cursor:default!important}.ui-icon{display:block;text-indent:-99999px;overflow:hidden;background-repeat:no-repeat}.ui-widget-overlay{position:fixed;top:0;left:0;width:100%;height:100%}.ui-draggable-handle{-ms-touch-action:none;touch-action:none}.ui-resizable{position:relative}.ui-resizable-handle{position:absolute;font-size:0.1px;display:block;-ms-touch-action:none;touch-action:none}.ui-resizable-disabled .ui-resizable-handle,.ui-resizable-autohide .ui-resizable-handle{display:none}.ui-resizable-n{cursor:n-resize;height:7px;width:100%;top:-5px;left:0}.ui-resizable-s{cursor:s-resize;height:7px;width:100%;bottom:-5px;left:0}.ui-resizable-e{cursor:e-resize;width:7px;right:-5px;top:0;height:100%}.ui-resizable-w{cursor:w-resize;width:7px;left:-5px;top:0;height:100%}.ui-resizable-se{cursor:se-resize;width:12px;height:12px;right:1px;bottom:1px}.ui-resizable-sw{cursor:sw-resize;width:9px;height:9px;left:-5px;bottom:-5px}.ui-resizable-nw{cursor:nw-resize;width:9px;height:9px;left:-5px;top:-5px}.ui-resizable-ne{cursor:ne-resize;width:9px;height:9px;right:-5px;top:-5px}.ui-selectable{-ms-touch-action:none;touch-action:none}.ui-selectable-helper{position:absolute;z-index:100;border:1px dotted black}.ui-sortable-handle{-ms-touch-action:none;touch-action:none}.ui-accordion .ui-accordion-header{display:block;cursor:pointer;position:relative;margin:2px 0 0 0;padding:.5em .5em .5em .7em;min-height:0;font-size:100%}.ui-accordion .ui-accordion-icons{padding-left:2.2em}.ui-accordion .ui-accordion-icons .ui-accordion-icons{padding-left:2.2em}.ui-accordion .ui-accordion-header .ui-accordion-header-icon{position:absolute;left:.5em;top:50%;margin-top:-8px}.ui-accordion .ui-accordion-content{padding:1em 2.2em;border-top:0;overflow:auto}.ui-autocomplete{position:absolute;top:0;left:0;cursor:default}.ui-button{display:inline-block;position:relative;padding:0;line-height:normal;margin-right:.1em;cursor:pointer;vertical-align:middle;text-align:center;overflow:visible}.ui-button,.ui-button:link,.ui-button:visited,.ui-button:hover,.ui-button:active{text-decoration:none}.ui-button-icon-only{width:2.2em}button.ui-button-icon-only{width:2.4em}.ui-button-icons-only{width:3.4em}button.ui-button-icons-only{width:3.7em}.ui-button .ui-button-text{display:block;line-height:normal}.ui-button-text-only .ui-button-text{padding:.4em 1em}.ui-button-icon-only .ui-button-text,.ui-button-icons-only .ui-button-text{padding:.4em;text-indent:-9999999px}.ui-button-text-icon-primary .ui-button-text,.ui-button-text-icons .ui-button-text{padding:.4em 1em .4em 2.1em}.ui-button-text-icon-secondary .ui-button-text,.ui-button-text-icons .ui-button-text{padding:.4em 2.1em .4em 1em}.ui-button-text-icons .ui-button-text{padding-left:2.1em;padding-right:2.1em}input.ui-button{padding:.4em 1em}.ui-button-icon-only .ui-icon,.ui-button-text-icon-primary .ui-icon,.ui-button-text-icon-secondary .ui-icon,.ui-button-text-icons .ui-icon,.ui-button-icons-only .ui-icon{position:absolute;top:50%;margin-top:-8px}.ui-button-icon-only .ui-icon{left:50%;margin-left:-8px}.ui-button-text-icon-primary .ui-button-icon-primary,.ui-button-text-icons .ui-button-icon-primary,.ui-button-icons-only .ui-button-icon-primary{left:.5em}.ui-button-text-icon-secondary .ui-button-icon-secondary,.ui-button-text-icons .ui-button-icon-secondary,.ui-button-icons-only .ui-button-icon-secondary{right:.5em}.ui-buttonset{margin-right:7px}.ui-buttonset .ui-button{margin-left:0;margin-right:-.3em}input.ui-button::-moz-focus-inner,button.ui-button::-moz-focus-inner{border:0;padding:0}.ui-datepicker{width:17em;padding:.2em .2em 0;display:none}.ui-datepicker .ui-datepicker-header{position:relative;padding:.2em 0}.ui-datepicker .ui-datepicker-prev,.ui-datepicker .ui-datepicker-next{position:absolute;top:2px;width:1.8em;height:1.8em}.ui-datepicker .ui-datepicker-prev-hover,.ui-datepicker .ui-datepicker-next-hover{top:1px}.ui-datepicker .ui-datepicker-prev{left:2px}.ui-datepicker .ui-datepicker-next{right:2px}.ui-datepicker .ui-datepicker-prev-hover{left:1px}.ui-datepicker .ui-datepicker-next-hover{right:1px}.ui-datepicker .ui-datepicker-prev span,.ui-datepicker .ui-datepicker-next span{display:block;position:absolute;left:50%;margin-left:-8px;top:50%;margin-top:-8px}.ui-datepicker .ui-datepicker-title{margin:0 2.3em;line-height:1.8em;text-align:center}.ui-datepicker .ui-datepicker-title select{font-size:1em;margin:1px 0}.ui-datepicker select.ui-datepicker-month,.ui-datepicker select.ui-datepicker-year{width:45%}.ui-datepicker table{width:100%;font-size:.9em;border-collapse:collapse;margin:0 0 .4em}.ui-datepicker th{padding:.7em .3em;text-align:center;font-weight:bold;border:0}.ui-datepicker td{border:0;padding:1px}.ui-datepicker td span,.ui-datepicker td a{display:block;padding:.2em;text-align:right;text-decoration:none}.ui-datepicker .ui-datepicker-buttonpane{background-image:none;margin:.7em 0 0 0;padding:0 .2em;border-left:0;border-right:0;border-bottom:0}.ui-datepicker .ui-datepicker-buttonpane button{float:right;margin:.5em .2em .4em;cursor:pointer;padding:.2em .6em .3em .6em;width:auto;overflow:visible}.ui-datepicker .ui-datepicker-buttonpane button.ui-datepicker-current{float:left}.ui-datepicker.ui-datepicker-multi{width:auto}.ui-datepicker-multi .ui-datepicker-group{float:left}.ui-datepicker-multi .ui-datepicker-group table{width:95%;margin:0 auto .4em}.ui-datepicker-multi-2 .ui-datepicker-group{width:50%}.ui-datepicker-multi-3 .ui-datepicker-group{width:33.3%}.ui-datepicker-multi-4 .ui-datepicker-group{width:25%}.ui-datepicker-multi .ui-datepicker-group-last .ui-datepicker-header,.ui-datepicker-multi .ui-datepicker-group-middle .ui-datepicker-header{border-left-width:0}.ui-datepicker-multi .ui-datepicker-buttonpane{clear:left}.ui-datepicker-row-break{clear:both;width:100%;font-size:0}.ui-datepicker-rtl{direction:rtl}.ui-datepicker-rtl .ui-datepicker-prev{right:2px;left:auto}.ui-datepicker-rtl .ui-datepicker-next{left:2px;right:auto}.ui-datepicker-rtl .ui-datepicker-prev:hover{right:1px;left:auto}.ui-datepicker-rtl .ui-datepicker-next:hover{left:1px;right:auto}.ui-datepicker-rtl .ui-datepicker-buttonpane{clear:right}.ui-datepicker-rtl .ui-datepicker-buttonpane button{float:left}.ui-datepicker-rtl .ui-datepicker-buttonpane button.ui-datepicker-current,.ui-datepicker-rtl .ui-datepicker-group{float:right}.ui-datepicker-rtl .ui-datepicker-group-last .ui-datepicker-header,.ui-datepicker-rtl .ui-datepicker-group-middle .ui-datepicker-header{border-right-width:0;border-left-width:1px}.ui-dialog{overflow:hidden;position:absolute;top:0;left:0;padding:.2em;outline:0}.ui-dialog .ui-dialog-titlebar{padding:.4em 1em;position:relative}.ui-dialog .ui-dialog-title{float:left;margin:.1em 0;white-space:nowrap;width:90%;overflow:hidden;text-overflow:ellipsis}.ui-dialog .ui-dialog-titlebar-close{position:absolute;right:.3em;top:50%;width:20px;margin:-10px 0 0 0;padding:1px;height:20px}.ui-dialog .ui-dialog-content{position:relative;border:0;padding:.5em 1em;background:none;overflow:auto}.ui-dialog .ui-dialog-buttonpane{text-align:left;border-width:1px 0 0 0;background-image:none;margin-top:.5em;padding:.3em 1em .5em .4em}.ui-dialog .ui-dialog-buttonpane .ui-dialog-buttonset{float:right}.ui-dialog .ui-dialog-buttonpane button{margin:.5em .4em .5em 0;cursor:pointer}.ui-dialog .ui-resizable-se{width:12px;height:12px;right:-5px;bottom:-5px;background-position:16px 16px}.ui-draggable .ui-dialog-titlebar{cursor:move}.ui-menu{list-style:none;padding:0;margin:0;display:block;outline:none}.ui-menu .ui-menu{position:absolute}.ui-menu .ui-menu-item{position:relative;margin:0;padding:3px 1em 3px .4em;cursor:pointer;min-height:0;list-style-image:url("data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7")}.ui-menu .ui-menu-divider{margin:5px 0;height:0;font-size:0;line-height:0;border-width:1px 0 0 0}.ui-menu .ui-state-focus,.ui-menu .ui-state-active{margin:-1px}.ui-menu-icons{position:relative}.ui-menu-icons .ui-menu-item{padding-left:2em}.ui-menu .ui-icon{position:absolute;top:0;bottom:0;left:.2em;margin:auto 0}.ui-menu .ui-menu-icon{left:auto;right:0}.ui-progressbar{height:2em;text-align:left;overflow:hidden}.ui-progressbar .ui-progressbar-value{margin:-1px;height:100%}.ui-progressbar .ui-progressbar-overlay{background:url("data:image/gif;base64,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");height:100%;filter:alpha(opacity=25);opacity:0.25}.ui-progressbar-indeterminate .ui-progressbar-value{background-image:none}.ui-selectmenu-menu{padding:0;margin:0;position:absolute;top:0;left:0;display:none}.ui-selectmenu-menu .ui-menu{overflow:auto;overflow-x:hidden;padding-bottom:1px}.ui-selectmenu-menu .ui-menu .ui-selectmenu-optgroup{font-size:1em;font-weight:bold;line-height:1.5;padding:2px 0.4em;margin:0.5em 0 0 0;height:auto;border:0}.ui-selectmenu-open{display:block}.ui-selectmenu-button{display:inline-block;overflow:hidden;position:relative;text-decoration:none;cursor:pointer}.ui-selectmenu-button span.ui-icon{right:0.5em;left:auto;margin-top:-8px;position:absolute;top:50%}.ui-selectmenu-button span.ui-selectmenu-text{text-align:left;padding:0.4em 2.1em 0.4em 1em;display:block;line-height:1.4;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ui-slider{position:relative;text-align:left}.ui-slider .ui-slider-handle{position:absolute;z-index:2;width:1.2em;height:1.2em;cursor:default;-ms-touch-action:none;touch-action:none}.ui-slider .ui-slider-range{position:absolute;z-index:1;font-size:.7em;display:block;border:0;background-position:0 0}.ui-slider.ui-state-disabled .ui-slider-handle,.ui-slider.ui-state-disabled .ui-slider-range{filter:inherit}.ui-slider-horizontal{height:.8em}.ui-slider-horizontal .ui-slider-handle{top:-.3em;margin-left:-.6em}.ui-slider-horizontal .ui-slider-range{top:0;height:100%}.ui-slider-horizontal .ui-slider-range-min{left:0}.ui-slider-horizontal .ui-slider-range-max{right:0}.ui-slider-vertical{width:.8em;height:100px}.ui-slider-vertical .ui-slider-handle{left:-.3em;margin-left:0;margin-bottom:-.6em}.ui-slider-vertical .ui-slider-range{left:0;width:100%}.ui-slider-vertical .ui-slider-range-min{bottom:0}.ui-slider-vertical .ui-slider-range-max{top:0}.ui-spinner{position:relative;display:inline-block;overflow:hidden;padding:0;vertical-align:middle}.ui-spinner-input{border:none;background:none;color:inherit;padding:0;margin:.2em 0;vertical-align:middle;margin-left:.4em;margin-right:22px}.ui-spinner-button{width:16px;height:50%;font-size:.5em;padding:0;margin:0;text-align:center;position:absolute;cursor:default;display:block;overflow:hidden;right:0}.ui-spinner a.ui-spinner-button{border-top:none;border-bottom:none;border-right:none}.ui-spinner .ui-icon{position:absolute;margin-top:-8px;top:50%;left:0}.ui-spinner-up{top:0}.ui-spinner-down{bottom:0}.ui-spinner .ui-icon-triangle-1-s{background-position:-65px -16px}.ui-tabs{position:relative;padding:.2em}.ui-tabs .ui-tabs-nav{margin:0;padding:.2em .2em 0}.ui-tabs .ui-tabs-nav li{list-style:none;float:left;position:relative;top:0;margin:1px .2em 0 0;border-bottom-width:0;padding:0;white-space:nowrap}.ui-tabs .ui-tabs-nav .ui-tabs-anchor{float:left;padding:.5em 1em;text-decoration:none}.ui-tabs .ui-tabs-nav li.ui-tabs-active{margin-bottom:-1px;padding-bottom:1px}.ui-tabs .ui-tabs-nav li.ui-tabs-active .ui-tabs-anchor,.ui-tabs .ui-tabs-nav li.ui-state-disabled .ui-tabs-anchor,.ui-tabs .ui-tabs-nav li.ui-tabs-loading .ui-tabs-anchor{cursor:text}.ui-tabs-collapsible .ui-tabs-nav li.ui-tabs-active .ui-tabs-anchor{cursor:pointer}.ui-tabs .ui-tabs-panel{display:block;border-width:0;padding:1em 1.4em;background:none}.ui-tooltip{padding:8px;position:absolute;z-index:9999;max-width:300px;-webkit-box-shadow:0 0 5px #aaa;box-shadow:0 0 5px #aaa}body .ui-tooltip{border-width:2px}.ui-widget{font-family:Arial,sans-serif;font-size:1.3em}.ui-widget .ui-widget{font-size:1em}.ui-widget input,.ui-widget select,.ui-widget textarea,.ui-widget button{font-family:Arial,sans-serif;font-size:1em}.ui-widget-content{border:1px solid #000;background:#111 url("images/ui-bg_gloss-wave_20_111111_500x100.png") 50% top repeat-x;color:#d9d9d9}.ui-widget-content a{color:#d9d9d9}.ui-widget-header{border:1px solid #0b3e6f;background:#0b3e6f url("images/ui-bg_diagonals-thick_15_0b3e6f_40x40.png") 50% 50% repeat;color:#f6f6f6;font-weight:bold}.ui-widget-header a{color:#f6f6f6}.ui-state-default,.ui-widget-content .ui-state-default,.ui-widget-header .ui-state-default{border:1px solid #333;background:#333 url("images/ui-bg_dots-small_20_333333_2x2.png") 50% 50% repeat;font-weight:bold;color:#fff}.ui-state-default a,.ui-state-default a:link,.ui-state-default a:visited{color:#fff;text-decoration:none}.ui-state-hover,.ui-widget-content .ui-state-hover,.ui-widget-header .ui-state-hover,.ui-state-focus,.ui-widget-content .ui-state-focus,.ui-widget-header .ui-state-focus{border:1px solid #222;background:#00498f url("images/ui-bg_dots-small_40_00498f_2x2.png") 50% 50% repeat;font-weight:bold;color:#fff}.ui-state-hover a,.ui-state-hover a:hover,.ui-state-hover a:link,.ui-state-hover a:visited,.ui-state-focus a,.ui-state-focus a:hover,.ui-state-focus a:link,.ui-state-focus a:visited{color:#fff;text-decoration:none}.ui-state-active,.ui-widget-content .ui-state-active,.ui-widget-header .ui-state-active{border:1px solid #096ac8;background:#292929 url("images/ui-bg_flat_40_292929_40x100.png") 50% 50% repeat-x;font-weight:bold;color:#75abff}.ui-state-active a,.ui-state-active a:link,.ui-state-active a:visited{color:#75abff;text-decoration:none}.ui-state-highlight,.ui-widget-content .ui-state-highlight,.ui-widget-header .ui-state-highlight{border:1px solid #052f57;background:#0b58a2 url("images/ui-bg_dots-medium_30_0b58a2_4x4.png") 50% 50% repeat;color:#fff}.ui-state-highlight a,.ui-widget-content .ui-state-highlight a,.ui-widget-header .ui-state-highlight a{color:#fff}.ui-state-error,.ui-widget-content .ui-state-error,.ui-widget-header .ui-state-error{border:1px solid #cd0a0a;background:#a32d00 url("images/ui-bg_dots-small_30_a32d00_2x2.png") 50% 50% repeat;color:#fff}.ui-state-error a,.ui-widget-content .ui-state-error a,.ui-widget-header .ui-state-error a{color:#fff}.ui-state-error-text,.ui-widget-content .ui-state-error-text,.ui-widget-header .ui-state-error-text{color:#fff}.ui-priority-primary,.ui-widget-content .ui-priority-primary,.ui-widget-header .ui-priority-primary{font-weight:bold}.ui-priority-secondary,.ui-widget-content .ui-priority-secondary,.ui-widget-header .ui-priority-secondary{opacity:.7;filter:Alpha(Opacity=70);font-weight:normal}.ui-state-disabled,.ui-widget-content .ui-state-disabled,.ui-widget-header .ui-state-disabled{opacity:.35;filter:Alpha(Opacity=35);background-image:none}.ui-state-disabled .ui-icon{filter:Alpha(Opacity=35)}.ui-icon{width:16px;height:16px}.ui-icon,.ui-widget-content .ui-icon{background-image:url("images/ui-icons_9ccdfc_256x240.png")}.ui-widget-header .ui-icon{background-image:url("images/ui-icons_98d2fb_256x240.png")}.ui-state-default .ui-icon{background-image:url("images/ui-icons_9ccdfc_256x240.png")}.ui-state-hover .ui-icon,.ui-state-focus .ui-icon{background-image:url("images/ui-icons_ffffff_256x240.png")}.ui-state-active .ui-icon{background-image:url("images/ui-icons_00498f_256x240.png")}.ui-state-highlight .ui-icon{background-image:url("images/ui-icons_ffffff_256x240.png")}.ui-state-error .ui-icon,.ui-state-error-text .ui-icon{background-image:url("images/ui-icons_ffffff_256x240.png")}.ui-icon-blank{background-position:16px 16px}.ui-icon-carat-1-n{background-position:0 0}.ui-icon-carat-1-ne{background-position:-16px 0}.ui-icon-carat-1-e{background-position:-32px 0}.ui-icon-carat-1-se{background-position:-48px 0}.ui-icon-carat-1-s{background-position:-64px 0}.ui-icon-carat-1-sw{background-position:-80px 0}.ui-icon-carat-1-w{background-position:-96px 0}.ui-icon-carat-1-nw{background-position:-112px 0}.ui-icon-carat-2-n-s{background-position:-128px 0}.ui-icon-carat-2-e-w{background-position:-144px 0}.ui-icon-triangle-1-n{background-position:0 -16px}.ui-icon-triangle-1-ne{background-position:-16px -16px}.ui-icon-triangle-1-e{background-position:-32px -16px}.ui-icon-triangle-1-se{background-position:-48px -16px}.ui-icon-triangle-1-s{background-position:-64px -16px}.ui-icon-triangle-1-sw{background-position:-80px -16px}.ui-icon-triangle-1-w{background-position:-96px -16px}.ui-icon-triangle-1-nw{background-position:-112px -16px}.ui-icon-triangle-2-n-s{background-position:-128px -16px}.ui-icon-triangle-2-e-w{background-position:-144px -16px}.ui-icon-arrow-1-n{background-position:0 -32px}.ui-icon-arrow-1-ne{background-position:-16px -32px}.ui-icon-arrow-1-e{background-position:-32px -32px}.ui-icon-arrow-1-se{background-position:-48px -32px}.ui-icon-arrow-1-s{background-position:-64px -32px}.ui-icon-arrow-1-sw{background-position:-80px -32px}.ui-icon-arrow-1-w{background-position:-96px -32px}.ui-icon-arrow-1-nw{background-position:-112px -32px}.ui-icon-arrow-2-n-s{background-position:-128px -32px}.ui-icon-arrow-2-ne-sw{background-position:-144px -32px}.ui-icon-arrow-2-e-w{background-position:-160px -32px}.ui-icon-arrow-2-se-nw{background-position:-176px -32px}.ui-icon-arrowstop-1-n{background-position:-192px -32px}.ui-icon-arrowstop-1-e{background-position:-208px -32px}.ui-icon-arrowstop-1-s{background-position:-224px -32px}.ui-icon-arrowstop-1-w{background-position:-240px -32px}.ui-icon-arrowthick-1-n{background-position:0 -48px}.ui-icon-arrowthick-1-ne{background-position:-16px -48px}.ui-icon-arrowthick-1-e{background-position:-32px -48px}.ui-icon-arrowthick-1-se{background-position:-48px -48px}.ui-icon-arrowthick-1-s{background-position:-64px -48px}.ui-icon-arrowthick-1-sw{background-position:-80px -48px}.ui-icon-arrowthick-1-w{background-position:-96px -48px}.ui-icon-arrowthick-1-nw{background-position:-112px -48px}.ui-icon-arrowthick-2-n-s{background-position:-128px -48px}.ui-icon-arrowthick-2-ne-sw{background-position:-144px -48px}.ui-icon-arrowthick-2-e-w{background-position:-160px -48px}.ui-icon-arrowthick-2-se-nw{background-position:-176px -48px}.ui-icon-arrowthickstop-1-n{background-position:-192px -48px}.ui-icon-arrowthickstop-1-e{background-position:-208px -48px}.ui-icon-arrowthickstop-1-s{background-position:-224px -48px}.ui-icon-arrowthickstop-1-w{background-position:-240px -48px}.ui-icon-arrowreturnthick-1-w{background-position:0 -64px}.ui-icon-arrowreturnthick-1-n{background-position:-16px -64px}.ui-icon-arrowreturnthick-1-e{background-position:-32px -64px}.ui-icon-arrowreturnthick-1-s{background-position:-48px -64px}.ui-icon-arrowreturn-1-w{background-position:-64px -64px}.ui-icon-arrowreturn-1-n{background-position:-80px -64px}.ui-icon-arrowreturn-1-e{background-position:-96px -64px}.ui-icon-arrowreturn-1-s{background-position:-112px -64px}.ui-icon-arrowrefresh-1-w{background-position:-128px -64px}.ui-icon-arrowrefresh-1-n{background-position:-144px -64px}.ui-icon-arrowrefresh-1-e{background-position:-160px -64px}.ui-icon-arrowrefresh-1-s{background-position:-176px -64px}.ui-icon-arrow-4{background-position:0 -80px}.ui-icon-arrow-4-diag{background-position:-16px -80px}.ui-icon-extlink{background-position:-32px -80px}.ui-icon-newwin{background-position:-48px -80px}.ui-icon-refresh{background-position:-64px -80px}.ui-icon-shuffle{background-position:-80px -80px}.ui-icon-transfer-e-w{background-position:-96px -80px}.ui-icon-transferthick-e-w{background-position:-112px -80px}.ui-icon-folder-collapsed{background-position:0 -96px}.ui-icon-folder-open{background-position:-16px -96px}.ui-icon-document{background-position:-32px -96px}.ui-icon-document-b{background-position:-48px -96px}.ui-icon-note{background-position:-64px -96px}.ui-icon-mail-closed{background-position:-80px -96px}.ui-icon-mail-open{background-position:-96px -96px}.ui-icon-suitcase{background-position:-112px -96px}.ui-icon-comment{background-position:-128px -96px}.ui-icon-person{background-position:-144px -96px}.ui-icon-print{background-position:-160px -96px}.ui-icon-trash{background-position:-176px -96px}.ui-icon-locked{background-position:-192px -96px}.ui-icon-unlocked{background-position:-208px -96px}.ui-icon-bookmark{background-position:-224px -96px}.ui-icon-tag{background-position:-240px -96px}.ui-icon-home{background-position:0 -112px}.ui-icon-flag{background-position:-16px -112px}.ui-icon-calendar{background-position:-32px -112px}.ui-icon-cart{background-position:-48px -112px}.ui-icon-pencil{background-position:-64px -112px}.ui-icon-clock{background-position:-80px -112px}.ui-icon-disk{background-position:-96px -112px}.ui-icon-calculator{background-position:-112px -112px}.ui-icon-zoomin{background-position:-128px -112px}.ui-icon-zoomout{background-position:-144px -112px}.ui-icon-search{background-position:-160px -112px}.ui-icon-wrench{background-position:-176px -112px}.ui-icon-gear{background-position:-192px -112px}.ui-icon-heart{background-position:-208px -112px}.ui-icon-star{background-position:-224px -112px}.ui-icon-link{background-position:-240px -112px}.ui-icon-cancel{background-position:0 -128px}.ui-icon-plus{background-position:-16px -128px}.ui-icon-plusthick{background-position:-32px -128px}.ui-icon-minus{background-position:-48px -128px}.ui-icon-minusthick{background-position:-64px -128px}.ui-icon-close{background-position:-80px -128px}.ui-icon-closethick{background-position:-96px -128px}.ui-icon-key{background-position:-112px -128px}.ui-icon-lightbulb{background-position:-128px -128px}.ui-icon-scissors{background-position:-144px -128px}.ui-icon-clipboard{background-position:-160px -128px}.ui-icon-copy{background-position:-176px -128px}.ui-icon-contact{background-position:-192px -128px}.ui-icon-image{background-position:-208px -128px}.ui-icon-video{background-position:-224px -128px}.ui-icon-script{background-position:-240px -128px}.ui-icon-alert{background-position:0 -144px}.ui-icon-info{background-position:-16px -144px}.ui-icon-notice{background-position:-32px -144px}.ui-icon-help{background-position:-48px -144px}.ui-icon-check{background-position:-64px -144px}.ui-icon-bullet{background-position:-80px -144px}.ui-icon-radio-on{background-position:-96px -144px}.ui-icon-radio-off{background-position:-112px -144px}.ui-icon-pin-w{background-position:-128px -144px}.ui-icon-pin-s{background-position:-144px -144px}.ui-icon-play{background-position:0 -160px}.ui-icon-pause{background-position:-16px -160px}.ui-icon-seek-next{background-position:-32px -160px}.ui-icon-seek-prev{background-position:-48px -160px}.ui-icon-seek-end{background-position:-64px -160px}.ui-icon-seek-start{background-position:-80px -160px}.ui-icon-seek-first{background-position:-80px -160px}.ui-icon-stop{background-position:-96px -160px}.ui-icon-eject{background-position:-112px -160px}.ui-icon-volume-off{background-position:-128px -160px}.ui-icon-volume-on{background-position:-144px -160px}.ui-icon-power{background-position:0 -176px}.ui-icon-signal-diag{background-position:-16px -176px}.ui-icon-signal{background-position:-32px -176px}.ui-icon-battery-0{background-position:-48px -176px}.ui-icon-battery-1{background-position:-64px -176px}.ui-icon-battery-2{background-position:-80px -176px}.ui-icon-battery-3{background-position:-96px -176px}.ui-icon-circle-plus{background-position:0 -192px}.ui-icon-circle-minus{background-position:-16px -192px}.ui-icon-circle-close{background-position:-32px -192px}.ui-icon-circle-triangle-e{background-position:-48px -192px}.ui-icon-circle-triangle-s{background-position:-64px -192px}.ui-icon-circle-triangle-w{background-position:-80px -192px}.ui-icon-circle-triangle-n{background-position:-96px -192px}.ui-icon-circle-arrow-e{background-position:-112px -192px}.ui-icon-circle-arrow-s{background-position:-128px -192px}.ui-icon-circle-arrow-w{background-position:-144px -192px}.ui-icon-circle-arrow-n{background-position:-160px -192px}.ui-icon-circle-zoomin{background-position:-176px -192px}.ui-icon-circle-zoomout{background-position:-192px -192px}.ui-icon-circle-check{background-position:-208px -192px}.ui-icon-circlesmall-plus{background-position:0 -208px}.ui-icon-circlesmall-minus{background-position:-16px -208px}.ui-icon-circlesmall-close{background-position:-32px -208px}.ui-icon-squaresmall-plus{background-position:-48px -208px}.ui-icon-squaresmall-minus{background-position:-64px -208px}.ui-icon-squaresmall-close{background-position:-80px -208px}.ui-icon-grip-dotted-vertical{background-position:0 -224px}.ui-icon-grip-dotted-horizontal{background-position:-16px -224px}.ui-icon-grip-solid-vertical{background-position:-32px -224px}.ui-icon-grip-solid-horizontal{background-position:-48px -224px}.ui-icon-gripsmall-diagonal-se{background-position:-64px -224px}.ui-icon-grip-diagonal-se{background-position:-80px -224px}.ui-corner-all,.ui-corner-top,.ui-corner-left,.ui-corner-tl{border-top-left-radius:4px}.ui-corner-all,.ui-corner-top,.ui-corner-right,.ui-corner-tr{border-top-right-radius:4px}.ui-corner-all,.ui-corner-bottom,.ui-corner-left,.ui-corner-bl{border-bottom-left-radius:4px}.ui-corner-all,.ui-corner-bottom,.ui-corner-right,.ui-corner-br{border-bottom-right-radius:4px}.ui-widget-overlay{background:#aaa url("images/ui-bg_flat_0_aaaaaa_40x100.png") 50% 50% repeat-x;opacity:.3;filter:Alpha(Opacity=30)}.ui-widget-shadow{margin:-8px 0 0 -8px;padding:8px;background:#aaa url("images/ui-bg_flat_0_aaaaaa_40x100.png") 50% 50% repeat-x;opacity:.3;filter:Alpha(Opacity=30);border-radius:8px}
css/style.css CHANGED
@@ -22,6 +22,9 @@
22
  #scan_old_post_list tbody tr:hover {
23
  background: #fcfcb7;
24
  }
 
 
 
25
  #scan_old_post_list thead tr {
26
  background: #2ea2cc;
27
  border-bottom: 2px solid #0074a2;
@@ -31,10 +34,27 @@
31
  padding: 5px 20px;
32
  border-bottom: 1px solid #e4e4e4;
33
  }
 
 
 
 
 
 
 
 
 
34
 
35
- #post_types_list {
36
- padding-bottom: 10px;
 
 
 
 
 
 
 
 
37
  }
38
- #post_types_list label {
39
- margin-right: 15px;
40
  }
22
  #scan_old_post_list tbody tr:hover {
23
  background: #fcfcb7;
24
  }
25
+ #scan_old_post_list tbody tr a {
26
+ text-decoration: none;
27
+ }
28
  #scan_old_post_list thead tr {
29
  background: #2ea2cc;
30
  border-bottom: 2px solid #0074a2;
34
  padding: 5px 20px;
35
  border-bottom: 1px solid #e4e4e4;
36
  }
37
+ #scan_old_post_list td.hr {
38
+ padding: 1px 0 0 0;
39
+ }
40
+ #scan_old_post_list .green {
41
+ color: green;
42
+ }
43
+ #scan_old_post_list .red {
44
+ color: red;
45
+ }
46
 
47
+ #scan-result {
48
+ margin-top: 20px;
49
+ }
50
+ span.icon.help {
51
+ width: 16px;
52
+ height: 16px;
53
+ display: inline-block;
54
+ background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAMAAAAoLQ9TAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAWhQTFRF8vf7UJvOM32pAF2UzN3tf67JQorDRo/HdrPaWZHGYJq80ez3ksPcvN/vpsXhOH69tNXputzuRo20jbzYfLPQgK7Ke7HQTI26xuPyEWief6rTQIC9dKbFOX+9m8PfX5fCZqDHN328jszpv9XprcjjRYu0yODwerjdkbfXPIG+wOPzqcjjdK3WdLXcyef02ebyU5TJlrvcvOHycqLPb6LPmsLgl8jkn9LrqsrkDmWbap7NndDqgb7hnMrmZ6jUe7bbXaLSUJLIQITASoy4OH28ZaTSSpHIXZ/PudfrN3y7yuf0yeb0cafSSZHIx+TzcKTRgL7gS4y4fLLZUpXJocbia6zXQIbBaaDOYqLRZKPRs83lPIPARonDQofBqsnj5e72R4jBD2acn9DpuNfrmb3doNTtTIvDgbndZZnKWqHRbKTQm87oqsvkQYnDo9btSIvEUJC2S5XKMHuocKTDM3i54Ovy////////zvRcUAAAAHh0Uk5T//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////8AfFcYjAAAAPZJREFUeNosj9VuxEAUQ++Es8zMXGZm2C0zMzNNBpLfb9KtJcuWn3zAssVlLAhY5k4H23LI43W7vZ6Q3B5wpHfwqVT67lyPYGeIxraneg6W2c/R2EYsagGvJj5m0+dgSvrKfaLKIRMO7l5KZmoIbjqmg+EM4MBo/fRVX1jsg7X6TACDUJvTtOZZugypfu2lJoC4+oYQuiiD/oXQ/IMIJNdtGEZWkrJ27OcIuAojW6rqZ8yvqq3Dggt4cvxdUZhpMkXZ/ExysGi86+S4yFjxauc6Tp3rZM/3OHn7PDzgWyJtOHqXb1QqjfwE/ae1OCWiSOgf/q8AAwAHVUGvSjYh9gAAAABJRU5ErkJggg==);
55
+ vertical-align: middle;
56
+ cursor: help;
57
  }
58
+ ul[id^="noty_"] li {
59
+ margin-bottom: 0;
60
  }
lang/qqworld_auto_save_images-zh_CN.mo CHANGED
Binary file
lang/qqworld_auto_save_images-zh_CN.po CHANGED
@@ -3,7 +3,7 @@ msgstr ""
3
  "Project-Id-Version: QQworld Auto Save Images\n"
4
  "Report-Msgid-Bugs-To: http://www.qqworld.org\n"
5
  "POT-Creation-Date: 2011-12-10 19:47:15+00:00\n"
6
- "PO-Revision-Date: 2014-09-30 19:50+0800\n"
7
  "Last-Translator: Michael Wang <admin@qqworld.org>\n"
8
  "Language-Team: QQWorld <admin@qqworld.org>\n"
9
  "Language: zh_CN\n"
@@ -24,7 +24,7 @@ msgid "When"
24
  msgstr "什么时候"
25
 
26
  msgid "Save post (Publish, save draft or pedding review)."
27
- msgstr "保存文章时(发布文章,保存草稿和提交审核)。"
28
 
29
  msgid "Publish post only."
30
  msgstr "仅发布文章时。"
@@ -48,16 +48,19 @@ msgstr "当单击编辑器顶部的按钮时,手动将所有远程图像保存
48
  msgid "Automatically Set Featured Image"
49
  msgstr "自动设置特色图片"
50
 
51
- msgid "Scan Old Posts"
52
- msgstr "扫描旧的文章"
53
 
54
- msgid "Scan"
55
- msgstr "扫描"
 
 
 
56
 
57
  msgid ""
58
- "Are you sure? Before you click the yes button, I recommend you backup the "
59
- "website database."
60
- msgstr "你确定吗?在点击确定按钮之前,我建议你备份网站的数据库。"
61
 
62
  msgid ""
63
  "Scan posts and keep remote images in all posts to local media library. Maybe "
@@ -67,8 +70,11 @@ msgstr "扫描所有的文章,将所有远程图片保存到本地,可能需
67
  msgid "Scanning..."
68
  msgstr "扫描中……"
69
 
70
- msgid "Select post types you want to scan:"
71
- msgstr "选择想要扫描的文章类型:"
 
 
 
72
 
73
  msgid "All done."
74
  msgstr "全部完成。"
@@ -76,21 +82,108 @@ msgstr "全部完成。"
76
  msgid "Post Type"
77
  msgstr "文章类型"
78
 
79
- msgid "Please select the post type you want to scan."
80
- msgstr "请选择要扫描的文章类型。"
81
 
82
- msgid "Filter:"
83
- msgstr "筛选:"
84
 
85
- msgid "Start from %s Scan"
86
  msgstr "从 %s 开始扫描"
87
 
88
  msgid ""
89
- "If you want to scan 50-150 posts, please type \"50\" in the textfield and "
90
- "choose \"100\" in the select, and do not choose \"all\"."
 
 
 
 
 
 
 
91
  msgstr ""
92
- "如果想扫描50-150篇文章,请在文本框中输入“50”并在下拉菜单中选择“100”,不能"
93
- "选“全部”。"
94
 
95
  msgid "Speed:"
96
  msgstr "速度:"
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
3
  "Project-Id-Version: QQworld Auto Save Images\n"
4
  "Report-Msgid-Bugs-To: http://www.qqworld.org\n"
5
  "POT-Creation-Date: 2011-12-10 19:47:15+00:00\n"
6
+ "PO-Revision-Date: 2014-10-05 19:18+0800\n"
7
  "Last-Translator: Michael Wang <admin@qqworld.org>\n"
8
  "Language-Team: QQWorld <admin@qqworld.org>\n"
9
  "Language: zh_CN\n"
24
  msgstr "什么时候"
25
 
26
  msgid "Save post (Publish, save draft or pedding review)."
27
+ msgstr "保存文章时(发布文章,保存草稿或提交审核)。"
28
 
29
  msgid "Publish post only."
30
  msgstr "仅发布文章时。"
48
  msgid "Automatically Set Featured Image"
49
  msgstr "自动设置特色图片"
50
 
51
+ msgid "Scan Posts"
52
+ msgstr "扫描文章"
53
 
54
+ msgid "Automatic"
55
+ msgstr "自动"
56
+
57
+ msgid "Manual"
58
+ msgstr "手动"
59
 
60
  msgid ""
61
+ "Are you sure?<br />Before you click the yes button, I recommend backup site "
62
+ "database."
63
+ msgstr "你确定吗?<br />在点击确定按钮之前,我建议你备份网站的数据库。"
64
 
65
  msgid ""
66
  "Scan posts and keep remote images in all posts to local media library. Maybe "
70
  msgid "Scanning..."
71
  msgstr "扫描中……"
72
 
73
+ msgid "Listing..."
74
+ msgstr "显示列表中……"
75
+
76
+ msgid "Select post types:"
77
+ msgstr "选择文章类型:"
78
 
79
  msgid "All done."
80
  msgstr "全部完成。"
82
  msgid "Post Type"
83
  msgstr "文章类型"
84
 
85
+ msgid "Please select post types."
86
+ msgstr "请选择文章类型。"
87
 
88
+ msgid "Offset:"
89
+ msgstr "偏移:"
90
 
91
+ msgid "Start from %s to Scan"
92
  msgstr "从 %s 开始扫描"
93
 
94
  msgid ""
95
+ "Default scan all posts. If you want to scan 50-150 posts, please type '50' "
96
+ "in the textfield and select '100'."
97
+ msgstr ""
98
+ "默认扫秒全部文章,如果想扫描50-150篇文章,请在文本框中输入“50”并在下拉菜单中"
99
+ "选择“100”。"
100
+
101
+ msgid ""
102
+ "If you have too many posts to be scan, sometimes in process looks like "
103
+ "stopping, but it may be fake. please be patient."
104
  msgstr ""
105
+ "如果有太多文章需要扫描,有时候在扫描过程中看起来像是停止了,但可能是假停止,"
106
+ "请耐心等待。"
107
 
108
  msgid "Speed:"
109
  msgstr "速度:"
110
+
111
+ msgid ""
112
+ "The list displayed will show you which posts including remote images, then "
113
+ "you can keep them to local manually via click \"Fetch\" button."
114
+ msgstr ""
115
+ "显示的列表中将告诉你哪些文章包含远程图片,然后你可以通过点击“抓取”按钮手动保"
116
+ "存。"
117
+
118
+ msgid "Fetch"
119
+ msgstr "抓取"
120
+
121
+ msgid "No post has remote images found."
122
+ msgstr "没有文章包含远程图像。"
123
+
124
+ msgid "No remote images found."
125
+ msgstr "未包含远程图像"
126
+
127
+ msgid "Control"
128
+ msgstr "控制"
129
+
130
+ msgid "Normal"
131
+ msgstr "正常"
132
+
133
+ msgid "No posts found."
134
+ msgstr "未找到任何文章。"
135
+
136
+ msgid "Including remote images those not exist."
137
+ msgstr "有不存在的远程图像。"
138
+
139
+ msgid "All remote images have been saved."
140
+ msgstr "已保存所有远程图像。"
141
+
142
+ msgid "%d post has been scanned."
143
+ msgstr "已扫描%d篇文章。"
144
+
145
+ msgid "%d posts have been scanned."
146
+ msgstr "已扫描%d篇文章。"
147
+
148
+ msgid "%d post including remote images have been processed."
149
+ msgstr "已处理%d篇包含远程图像的文章。"
150
+
151
+ msgid "%d posts including remote images have been processed."
152
+ msgstr "已处理%d篇包含远程图像的文章。"
153
+
154
+ msgid "found %d post including remote images."
155
+ msgstr "找到%d篇包含远程图像的文章。"
156
+
157
+ msgid "found %d posts including remote images."
158
+ msgstr "找到%d篇包含远程图像的文章。"
159
+
160
+ msgid "And with %d post including remote images those not exist."
161
+ msgstr "其中有%d篇文章包含不存在的远程图像。"
162
+
163
+ msgid "And with %d posts including remote images those not exist."
164
+ msgstr "其中有%d篇文章包含不存在的远程图像。"
165
+
166
+ msgid "%d post including remote images those not exist couldn't be processed."
167
+ msgstr "%d篇包含不存在的远程图像的文章无法处理。"
168
+
169
+ msgid "%d posts including remote images those not exist couldn't be processed."
170
+ msgstr "%d篇包含不存在的远程图像的文章无法处理。"
171
+
172
+ msgid "Scope of Post ID:"
173
+ msgstr "文章ID范围:"
174
+
175
+ msgid "From %1$s to %2$s"
176
+ msgstr "从 %1$s 到 %2$s"
177
+
178
+ msgid ""
179
+ "Default empty for scan all posts ID. If you want to scan posts ID from 50 to "
180
+ "100. please type '50' and '100' or '100' and '50', The order in which two "
181
+ "numbers can be reversed. If you only type one number, system would only scan "
182
+ "that ID."
183
+ msgstr ""
184
+ "默认留空扫描所有文章ID,如果要扫描50-100的文章ID,请输入'50'和'100'或"
185
+ "者'100'和'50',两个数字的顺序可以颠倒。如果你只输入了1个数字,则系统只会扫描"
186
+ "该ID。"
187
+
188
+ msgid "If the server is too much stress may be appropriately reduced speed."
189
+ msgstr "如果服务器压力过大,可以适当调低速度。"
qqworld-auto-save-images.php CHANGED
@@ -3,7 +3,7 @@
3
  Plugin Name: QQWorld Auto Save Images
4
  Plugin URI: https://wordpress.org/plugins/qqworld-auto-save-images/
5
  Description: Automatically keep the all remote picture to the local, and automatically set featured image. 自动保存远程图片到本地,自动设置特色图片,并且支持机器人采集软件从外部提交。
6
- Version: 1.5.5
7
  Author: Michael Wang
8
  Author URI: http://www.qqworld.org
9
  */
@@ -13,6 +13,7 @@ define('QQWORLD_AUTO_SAVE_IMAGES_URL', plugin_dir_url(__FILE__));
13
  class QQWorld_auto_save_images {
14
  var $using_action;
15
  var $type;
 
16
  function __construct() {
17
  $this->using_action = get_option('using_action', 'publish');
18
  $this->type = get_option('qqworld_auto_save_imagess_type', 'auto');
@@ -32,23 +33,54 @@ class QQWorld_auto_save_images {
32
  add_action( 'wp_ajax_nopriv_get_scan_list', array($this, 'get_scan_list') );
33
  add_action( 'wp_ajax_save_remote_images_after_scan', array($this, 'save_remote_images_after_scan') );
34
  add_action( 'wp_ajax_nopriv_save_remote_images_after_scan', array($this, 'save_remote_images_after_scan') );
 
 
35
 
36
  add_action( 'plugins_loaded', array($this, 'load_language') );
37
  add_action( 'admin_menu', array($this, 'admin_menu') );
38
  add_action( 'admin_init', array($this, 'register_settings') );
39
  add_filter( 'plugin_row_meta', array($this, 'registerPluginLinks'),10,2 );
 
 
 
 
 
 
 
 
 
 
 
 
40
  }
41
 
42
  public function get_scan_list() {
43
  if ( !current_user_can( 'manage_options' ) ) return;
44
  $post_types = isset($_REQUEST['qqworld_auto_save_imagess_post_types']) ? $_REQUEST['qqworld_auto_save_imagess_post_types'] : 'post';
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
45
  $offset = empty($_REQUEST['offset']) ? 0 : $_POST['offset'];
46
  $posts_per_page = $_REQUEST['posts_per_page'];
47
  $args = array(
48
  'posts_per_page' => $posts_per_page,
49
  'offset' => $offset,
50
  'order' => 'ASC',
51
- 'post_type' => $post_types
 
52
  );
53
  $posts = get_posts($args);
54
  echo json_encode($posts);
@@ -65,28 +97,84 @@ class QQWorld_auto_save_images {
65
  $post_type = $post->post_type;
66
  $content = $post->post_content;
67
  $title = $post->post_title;
68
- $preg=preg_match_all('/<img.*?src="((?![\"\']).*?)((?![\"\'])\?.*?)?"/',stripslashes($content),$matches);
 
 
69
  if($preg){
70
  foreach($matches[1] as $image_url){
71
  if(empty($image_url)) continue;
72
  $pos=strpos($image_url,get_bloginfo('url'));
73
  if($pos===false){
 
74
  if ($res=$this->save_images($image_url,$post_id)) {
75
  $replace=$res['url'];
76
  $content=str_replace($image_url,$replace,$content);
77
- }
78
  }
79
  }
80
  }
81
  wp_update_post(array('ID' => $post_id, 'post_content' => $content));
 
 
 
82
  ?>
83
- <tr>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
84
  <td><?php echo $post_id; ?></td>
85
- <td><?php echo $post_type; ?></td>
86
- <td><a href="<?php echo get_edit_post_link($post_id); ?>" target="_blank"><?php echo $title; ?></a></td>
87
- <td><?php _e('Done'); ?></td>
 
88
  </tr>
89
  <?php
 
 
 
 
 
 
90
  endforeach;
91
  exit;
92
  }
@@ -220,9 +308,7 @@ class QQWorld_auto_save_images {
220
  ?>
221
  <div class="wrap">
222
  <h2><?php _e('QQWorld Auto Save Images', 'qqworld_auto_save_images'); ?></h2>
223
- <?php if ($_GET['updated']=='true') { ?><div class="updated settings-error" id="setting-error-settings_updated"><p><strong><?php _e('Settings saved.'); ?></strong></p></div><?php }; ?>
224
- <script src="<?php echo QQWORLD_AUTO_SAVE_IMAGES_URL; ?>js/jquery.noty.packaged.min.js"></script>
225
- <link rel='stylesheet' href='<?php echo QQWORLD_AUTO_SAVE_IMAGES_URL; ?>css/style.css' type='text/css' media='all' />
226
  <form action="options.php" method="post" id="form">
227
  <?php settings_fields('qqworld_auto_save_images_settings'); ?>
228
  <img src="https://ps.w.org/qqworld-auto-save-images/assets/banner-772x250.png" width="772" height="250" id="banner" />
@@ -274,57 +360,135 @@ class QQWorld_auto_save_images {
274
  </tr>
275
 
276
  <tr valign="top">
277
- <th scope="row"><label><?php _e('Scan Old Posts', 'qqworld_auto_save_images'); ?></label></th>
278
  <td>
279
  <div id="post_types_list">
280
- <p><?php _e('Select post types you want to scan:', 'qqworld_auto_save_images'); ?> <?php
281
- $post_types = get_post_types('', 'objects');
282
- foreach ($post_types as $name => $post_type) : ?>
283
- <label><input name="qqworld_auto_save_imagess_post_types[]" type="checkbox" value="<?php echo $name; ?>" /> <?php echo $post_type->labels->name; ?></label>
284
- <?php endforeach;
285
- ?></p>
286
- <p><?php _e('Filter:', 'qqworld_auto_save_images'); ?> <?php printf(__('Start from %s Scan', 'qqworld_auto_save_images'), '<input type="number" class="small-text" name="offset" value="0" disabled />'); ?>
287
- <select name="posts_per_page">
288
- <option value="-1"><?php _e('All'); ?></option>
289
- <?php for ($i=1; $i<=10; $i++) : ?>
290
- <option value="<?php echo $i*100; ?>"><?php echo $i*100; ?></option>
291
- <?php endfor; ?>
292
- </select> <?php _e('Posts'); ?>
293
- </p>
294
- <p class="description"><?php _e("If you want to scan 50-150 posts, please type \"50\" in the textfield and choose \"100\" in the select, and do not choose \"all\".", 'qqworld_auto_save_images'); ?></p>
295
  </div>
 
 
 
 
 
 
 
 
 
 
 
296
 
297
  <fieldset>
298
- <legend class="screen-reader-text"><span><?php _e('Scan Old Posts', 'qqworld_auto_save_images'); ?></span></legend>
299
  <?php _e('Speed:', 'qqworld_auto_save_images'); ?>
300
  <select name="speed">
301
- <?php for ($i=1; $i<=10; $i++) : ?>
302
  <option value="<?php echo $i; ?>"><?php echo $i; ?></option>
303
  <?php endfor; ?>
304
- </select>
 
305
  <label for="scan_old_posts">
306
- <input name="scan_old_posts" type="button" class="button-primary" id="scan_old_posts" value="<?php _e('Scan', 'qqworld_auto_save_images'); ?> &#8667;" />
307
- </label>
308
- <p class="description"><?php _e('Scan posts and keep remote images in all posts to local media library. Maybe take a long time.', 'qqworld_auto_save_images'); ?></p>
 
 
309
  </fieldset>
310
  </td>
311
  </tr>
312
  </tbody>
313
  </table>
314
  <script>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
315
  if (!QQWorld_auto_save_images) var QQWorld_auto_save_images = {};
316
- QQWorld_auto_save_images.are_your_sure = '<?php _e('Are you sure? Before you click the yes button, I recommend you backup the website database.', 'qqworld_auto_save_images'); ?>';
 
317
  QQWorld_auto_save_images.scan = function(respond, r) {
318
  var $ = jQuery;
319
  if (typeof respond[r] == 'undefined') {
 
 
320
  $('body').data('noty').close();
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
321
  noty({
322
- text: '<?php _e('All done.', 'qqworld_auto_save_images'); ?>',
323
  type: 'success',
324
- layout: 'bottomCenter',
325
- dismissQueue: true
 
326
  });
327
  $('#scan_old_posts').removeAttr('disabled');
 
328
  return;
329
  }
330
  var speed = parseInt($('select[name="speed"]').val()),
@@ -346,8 +510,85 @@ class QQWorld_auto_save_images {
346
  }
347
  });
348
  };
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
349
  QQWorld_auto_save_images.events = function() {
350
  var $ = jQuery;
 
 
 
 
 
 
351
  $('select[name="posts_per_page"]').on('change', function() {
352
  if ($(this).val() == '-1') $('input[name="offset"]').attr('disabled', true);
353
  else $('input[name="offset"]').removeAttr('disabled', true);
@@ -371,8 +612,10 @@ class QQWorld_auto_save_images {
371
  addClass: 'button button-primary',
372
  text: '<?php _e('Yes'); ?>',
373
  onClick: function ($noty) {
 
374
  $noty.close();
375
  $('#scan_old_posts').attr('disabled', true);
 
376
  var data = $('#form').serialize()+'&action=get_scan_list';
377
  $.ajax({
378
  type: 'POST',
@@ -393,7 +636,7 @@ class QQWorld_auto_save_images {
393
  $('body').data('noty', noty({
394
  text: '<?php _e('Scanning...', 'qqworld_auto_save_images'); ?>',
395
  type: 'notification',
396
- layout: 'bottomCenter',
397
  dismissQueue: true
398
  }) );
399
  QQWorld_auto_save_images.scan(respond, 0);
@@ -410,22 +653,63 @@ class QQWorld_auto_save_images {
410
  }
411
  ]
412
  });
413
- } else {
414
- var n = noty({
415
- text: '<?php _e('Please select the post type you want to scan.', 'qqworld_auto_save_images'); ?>',
416
- type: 'error',
417
- dismissQueue: true,
418
- layout: 'bottomCenter',
419
- timeout: 3000
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
420
  });
421
- }
422
  });
 
 
 
 
 
 
 
 
 
 
 
 
 
 
423
  };
424
- QQWorld_auto_save_images.events();
 
 
425
  </script>
426
  <p class="submit"><input type="submit" value="<?php _e('Save Changes') ?>" class="button-primary" name="Submit" /></p>
427
  </form>
428
- <div id="scan-result"></div>
429
  <?php
430
  }
431
 
@@ -481,13 +765,14 @@ class QQWorld_auto_save_images {
481
  if ( defined('DOING_AUTOSAVE') && DOING_AUTOSAVE )
482
  return;
483
 
 
 
484
  if ( !current_user_can('edit_post', $post_id) )
485
  return;
486
 
487
- $post_id = $_POST['post_id'];
488
  $content = $this->js_unescape($_POST['content']);
489
 
490
- $preg=preg_match_all('/<img.*?src="((?![\"\']).*?)((?![\"\'])\?.*?)?"/',stripslashes($content),$matches);
491
  if($preg){
492
  foreach($matches[1] as $image_url){
493
  if(empty($image_url)) continue;
@@ -518,7 +803,7 @@ class QQWorld_auto_save_images {
518
 
519
  $post=get_post($post_id);
520
  $content=$post->post_content;
521
- $preg=preg_match_all('/<img.*?src="((?![\"\']).*?)((?![\"\'])\?.*?)?"/',stripslashes($content),$matches);
522
  if($preg){
523
  foreach($matches[1] as $image_url){
524
  if(empty($image_url)) continue;
@@ -538,6 +823,7 @@ class QQWorld_auto_save_images {
538
 
539
  //save exterior images
540
  function save_images($image_url, $post_id){
 
541
  if ( $file=@file_get_contents($image_url) ) {
542
  $filename=basename($image_url);
543
  preg_match( '/(.*?)(\.\w+)$/', $filename, $match );
3
  Plugin Name: QQWorld Auto Save Images
4
  Plugin URI: https://wordpress.org/plugins/qqworld-auto-save-images/
5
  Description: Automatically keep the all remote picture to the local, and automatically set featured image. 自动保存远程图片到本地,自动设置特色图片,并且支持机器人采集软件从外部提交。
6
+ Version: 1.5.6
7
  Author: Michael Wang
8
  Author URI: http://www.qqworld.org
9
  */
13
  class QQWorld_auto_save_images {
14
  var $using_action;
15
  var $type;
16
+ var $preg = '/<img.*?src="((?![\"\']).*?)((?![\"\'])\?.*?)?".*?>/';
17
  function __construct() {
18
  $this->using_action = get_option('using_action', 'publish');
19
  $this->type = get_option('qqworld_auto_save_imagess_type', 'auto');
33
  add_action( 'wp_ajax_nopriv_get_scan_list', array($this, 'get_scan_list') );
34
  add_action( 'wp_ajax_save_remote_images_after_scan', array($this, 'save_remote_images_after_scan') );
35
  add_action( 'wp_ajax_nopriv_save_remote_images_after_scan', array($this, 'save_remote_images_after_scan') );
36
+ add_action( 'wp_ajax_save_remote_images_list_all_posts', array($this, 'save_remote_images_list_all_posts') );
37
+ add_action( 'wp_ajax_nopriv_save_remote_images_list_all_posts', array($this, 'save_remote_images_list_all_posts') );
38
 
39
  add_action( 'plugins_loaded', array($this, 'load_language') );
40
  add_action( 'admin_menu', array($this, 'admin_menu') );
41
  add_action( 'admin_init', array($this, 'register_settings') );
42
  add_filter( 'plugin_row_meta', array($this, 'registerPluginLinks'),10,2 );
43
+
44
+ add_action( 'admin_head', array($this, 'options_general_add_js') );
45
+
46
+ }
47
+
48
+ public function options_general_add_js() {
49
+ ?><script src="<?php echo QQWORLD_AUTO_SAVE_IMAGES_URL; ?>js/jquery.noty.packaged.min.js"></script>
50
+ <link rel='stylesheet' href='<?php echo QQWORLD_AUTO_SAVE_IMAGES_URL; ?>css/style.css' type='text/css' media='all' />
51
+ <link rel='stylesheet' href='<?php echo QQWORLD_AUTO_SAVE_IMAGES_URL; ?>css/jquery-ui/jquery-ui.min.css' type='text/css' media='all' /><?php
52
+ wp_enqueue_script('jquery-ui-tooltip');
53
+ wp_enqueue_script('jquery-effects-core');
54
+ wp_enqueue_script('jquery-effects-shake');
55
  }
56
 
57
  public function get_scan_list() {
58
  if ( !current_user_can( 'manage_options' ) ) return;
59
  $post_types = isset($_REQUEST['qqworld_auto_save_imagess_post_types']) ? $_REQUEST['qqworld_auto_save_imagess_post_types'] : 'post';
60
+ // Scope of ID
61
+ $id_from = $_REQUEST['id_from'];
62
+ $id_to = $_REQUEST['id_to'];
63
+ $id_from = $id_from=='0' ? 1 : $id_from;
64
+ $id_to = $id_to=='0' ? 1 : $id_to;
65
+ $post__in = array();
66
+ if (!empty($id_from) && is_numeric($id_from) && empty($id_to)) {
67
+ $post__in[] = $id_from;
68
+ } elseif (empty($id_from) && !empty($id_to) && is_numeric($id_to)) {
69
+ $post__in[] = $id_to;
70
+ } elseif (!empty($id_from) && is_numeric($id_from) && !empty($id_to) && is_numeric($id_to)) {
71
+ if ($id_from == $id_to) $post__in[] = $id_from;
72
+ elseif ($id_from < $id_to) for ($s=$id_from; $s<=$id_to; $s++) $post__in[]=$s;
73
+ elseif($id_from > $id_to) for ($s=$id_from; $s>=$id_to; $s--) $post__in[]=$s;
74
+ }
75
+ // Offset
76
  $offset = empty($_REQUEST['offset']) ? 0 : $_POST['offset'];
77
  $posts_per_page = $_REQUEST['posts_per_page'];
78
  $args = array(
79
  'posts_per_page' => $posts_per_page,
80
  'offset' => $offset,
81
  'order' => 'ASC',
82
+ 'post_type' => $post_types,
83
+ 'post__in' => $post__in
84
  );
85
  $posts = get_posts($args);
86
  echo json_encode($posts);
97
  $post_type = $post->post_type;
98
  $content = $post->post_content;
99
  $title = $post->post_title;
100
+ $preg=preg_match_all($this->preg,stripslashes($content),$matches);
101
+ $has_remote_images = false;
102
+ $has_not_exits_remote_images = false;
103
  if($preg){
104
  foreach($matches[1] as $image_url){
105
  if(empty($image_url)) continue;
106
  $pos=strpos($image_url,get_bloginfo('url'));
107
  if($pos===false){
108
+ $has_remote_images = true;
109
  if ($res=$this->save_images($image_url,$post_id)) {
110
  $replace=$res['url'];
111
  $content=str_replace($image_url,$replace,$content);
112
+ } else $has_not_exits_remote_images = true;
113
  }
114
  }
115
  }
116
  wp_update_post(array('ID' => $post_id, 'post_content' => $content));
117
+ $post_type_object = get_post_type_object($post_type);
118
+ if ($has_remote_images && $has_not_exits_remote_images) $class =' class="has_remote_images has_not_exits_remote_images"';
119
+ else $class = $has_remote_images ? ' class="has_remote_images"' : '';
120
  ?>
121
+ <tr<?php echo $class; ?>>
122
+ <td><?php echo $post_id; ?></td>
123
+ <td><?php echo $post_type_object->labels->name; ?></td>
124
+ <td><a href="<?php echo get_edit_post_link($post_id); ?>" target="_blank"><?php echo $title; ?> &#8667;</a></td>
125
+ <td><?php
126
+ if ($has_remote_images) {
127
+ echo $has_not_exits_remote_images ? '<span class="red">'.__('Including remote images those not exist.', 'qqworld_auto_save_images').'</span>' : '<span class="green">'.__('All remote images have been saved.', 'qqworld_auto_save_images').'</span>';
128
+ } else _e('No remote images found.', 'qqworld_auto_save_images')
129
+ ?></td>
130
+ </tr>
131
+ <?php
132
+ endforeach;
133
+ exit;
134
+ }
135
+
136
+ public function save_remote_images_list_all_posts() {
137
+ set_time_limit(0);
138
+ if ( !current_user_can( 'manage_options' ) ) return;
139
+ $post_ids = $_REQUEST['post_id'];
140
+ echo 1;
141
+ if (!empty($post_ids)) foreach ($post_ids as $post_id) :
142
+ $post = get_post($post_id);
143
+ $post_id = $post->ID;
144
+ $post_type = $post->post_type;
145
+ $content = $post->post_content;
146
+ $title = $post->post_title;
147
+ $preg=preg_match_all($this->preg,stripslashes($content),$matches);
148
+ $has_remote_images = false;
149
+ $has_not_exits_remote_images = false;
150
+ if($preg){
151
+ foreach($matches[1] as $image_url){
152
+ if(empty($image_url)) continue;
153
+ $pos=strpos($image_url,get_bloginfo('url'));
154
+ if($pos===false) {
155
+ $has_remote_images = true;
156
+ $has_not_exits_remote_images = @!fopen( $image_url, 'r' );
157
+ }
158
+ }
159
+ }
160
+ if ($has_remote_images) :
161
+ $post_type_object = get_post_type_object($post_type);
162
+ $class = $has_not_exits_remote_images ? ' has_not_exits_remote_images' : '';
163
+ ?>
164
+ <tr class="has_remote_images<?php echo $class; ?>">
165
  <td><?php echo $post_id; ?></td>
166
+ <td><?php echo $post_type_object->labels->name; ?></td>
167
+ <td><a href="<?php echo get_edit_post_link($post_id); ?>" target="_blank"><?php echo $title; ?> &#8667;</a></td>
168
+ <td><?php echo $has_not_exits_remote_images ? '<span class="red">'.__('Including remote images those not exist.', 'qqworld_auto_save_images').'</span>' : __('Normal', 'qqworld_auto_save_images'); ?></a></td>
169
+ <td id="list-<?php echo $post_id; ?>"><input type="button" post-id="<?php echo $post_id; ?>" class="fetch-remote-images button button-primary" value="&#9997; <?php _e('Fetch', 'qqworld_auto_save_images'); ?>" /></td>
170
  </tr>
171
  <?php
172
+ else:
173
+ ?>
174
+ <tr>
175
+ <td colspan="5" class="hr"></td>
176
+ </tr>
177
+ <?php endif;
178
  endforeach;
179
  exit;
180
  }
308
  ?>
309
  <div class="wrap">
310
  <h2><?php _e('QQWorld Auto Save Images', 'qqworld_auto_save_images'); ?></h2>
311
+ <div id="scan-result"></div>
 
 
312
  <form action="options.php" method="post" id="form">
313
  <?php settings_fields('qqworld_auto_save_images_settings'); ?>
314
  <img src="https://ps.w.org/qqworld-auto-save-images/assets/banner-772x250.png" width="772" height="250" id="banner" />
360
  </tr>
361
 
362
  <tr valign="top">
363
+ <th scope="row"><label><?php _e('Scan Posts', 'qqworld_auto_save_images'); ?></label> <span class="icon help" title="<?php _e("If you have too many posts to be scan, sometimes in process looks like stopping, but it may be fake. please be patient.", 'qqworld_auto_save_images') ?>"></span></th>
364
  <td>
365
  <div id="post_types_list">
366
+ <p><?php _e('Select post types:', 'qqworld_auto_save_images'); ?> <?php
367
+ $post_types = get_post_types('', 'objects'); ?>
368
+ <ul>
369
+ <?php foreach ($post_types as $name => $post_type) :
370
+ if ( !in_array($name, array('attachment', 'revision', 'nav_menu_item') )) : ?>
371
+ <li><label><input name="qqworld_auto_save_imagess_post_types[]" type="checkbox" value="<?php echo $name; ?>" /> <?php echo $post_type->labels->name; ?> (<?php $count = wp_count_posts($name); echo $count->publish; ?>)</label></li>
372
+ <?php endif;
373
+ endforeach;
374
+ ?></ul>
 
 
 
 
 
 
375
  </div>
376
+
377
+ <p id="scope-id"><?php _e('Scope of Post ID:', 'qqworld_auto_save_images'); ?> <?php printf(__('From %1$s to %2$s', 'qqworld_auto_save_images'), '<input type="number" class="small-text" name="id_from" />', '<input type="number" class="small-text" name="id_to" />'); ?> <span class="icon help" title="<?php _e("Default empty for scan all posts ID. If you want to scan posts ID from 50 to 100. please type '50' and '100' or '100' and '50', The order in which two numbers can be reversed. If you only type one number, system would only scan that ID.", 'qqworld_auto_save_images'); ?>"></span></p>
378
+
379
+ <p><?php _e('Offset:', 'qqworld_auto_save_images'); ?> <?php printf(__('Start from %s to Scan', 'qqworld_auto_save_images'), '<input type="number" class="small-text" name="offset" value="0" disabled />'); ?>
380
+ <select name="posts_per_page">
381
+ <option value="-1"><?php _e('All'); ?></option>
382
+ <?php for ($i=1; $i<=10; $i++) : ?>
383
+ <option value="<?php echo $i*100; ?>"><?php echo $i*100; ?></option>
384
+ <?php endfor; ?>
385
+ </select> <?php _e('Posts'); ?> <span class="icon help" title="<?php _e("Default scan all posts. If you want to scan 50-150 posts, please type '50' in the textfield and select '100'.", 'qqworld_auto_save_images'); ?>"></span>
386
+ </p>
387
 
388
  <fieldset>
389
+ <legend class="screen-reader-text"><span><?php _e('Scan Posts', 'qqworld_auto_save_images'); ?></span></legend>
390
  <?php _e('Speed:', 'qqworld_auto_save_images'); ?>
391
  <select name="speed">
392
+ <?php for ($i=1; $i<10; $i++) : ?>
393
  <option value="<?php echo $i; ?>"><?php echo $i; ?></option>
394
  <?php endfor; ?>
395
+ <option value="10" selected>10</option>
396
+ </select> <span class="icon help" title="<?php _e('If the server is too much stress may be appropriately reduced speed.', 'qqworld_auto_save_images'); ?>"></span><br />
397
  <label for="scan_old_posts">
398
+ <input name="scan_old_posts" type="button" class="button-primary" id="scan_old_posts" value="<?php _e('Automatic', 'qqworld_auto_save_images'); ?> &#8667;" />
399
+ </label> <span class="icon help" title="<?php _e('Scan posts and keep remote images in all posts to local media library. Maybe take a long time.', 'qqworld_auto_save_images'); ?>"></span>
400
+ <label for="print_all_posts">
401
+ <input name="list_all_posts" type="button" class="button-primary" id="list_all_posts" value="<?php _e('Manual', 'qqworld_auto_save_images'); ?> &#9776;" />
402
+ </label> <span class="icon help" title="<?php _e("The list displayed will show you which posts including remote images, then you can keep them to local manually via click \"Fetch\" button.", 'qqworld_auto_save_images'); ?>"></span>
403
  </fieldset>
404
  </td>
405
  </tr>
406
  </tbody>
407
  </table>
408
  <script>
409
+ function str_repeat(i, m) {
410
+ for (var o = []; m > 0; o[--m] = i);
411
+ return o.join('');
412
+ }
413
+ function sprintf() {
414
+ var i = 0, a, f = arguments[i++], o = [], m, p, c, x, s = '';
415
+ while (f) {
416
+ if (m = /^[^\x25]+/.exec(f)) {
417
+ o.push(m[0]);
418
+ }
419
+ else if (m = /^\x25{2}/.exec(f)) {
420
+ o.push('%');
421
+ }
422
+ else if (m = /^\x25(?:(\d+)\$)?(\+)?(0|'[^$])?(-)?(\d+)?(?:\.(\d+))?([b-fosuxX])/.exec(f)) {
423
+ if (((a = arguments[m[1] || i++]) == null) || (a == undefined)) {
424
+ throw('Too few arguments.');
425
+ }
426
+ if (/[^s]/.test(m[7]) && (typeof(a) != 'number')) {
427
+ throw('Expecting number but found ' + typeof(a));
428
+ }
429
+ switch (m[7]) {
430
+ case 'b': a = a.toString(2); break;
431
+ case 'c': a = String.fromCharCode(a); break;
432
+ case 'd': a = parseInt(a); break;
433
+ case 'e': a = m[6] ? a.toExponential(m[6]) : a.toExponential(); break;
434
+ case 'f': a = m[6] ? parseFloat(a).toFixed(m[6]) : parseFloat(a); break;
435
+ case 'o': a = a.toString(8); break;
436
+ case 's': a = ((a = String(a)) && m[6] ? a.substring(0, m[6]) : a); break;
437
+ case 'u': a = Math.abs(a); break;
438
+ case 'x': a = a.toString(16); break;
439
+ case 'X': a = a.toString(16).toUpperCase(); break;
440
+ }
441
+ a = (/[def]/.test(m[7]) && m[2] && a >= 0 ? '+'+ a : a);
442
+ c = m[3] ? m[3] == '0' ? '0' : m[3].charAt(1) : ' ';
443
+ x = m[5] - String(a).length - s.length;
444
+ p = m[5] ? str_repeat(c, x) : '';
445
+ o.push(s + (m[4] ? a + p : p + a));
446
+ }
447
+ else {
448
+ throw('Huh ?!');
449
+ }
450
+ f = f.substring(m[0].length);
451
+ }
452
+ return o.join('');
453
+ }
454
  if (!QQWorld_auto_save_images) var QQWorld_auto_save_images = {};
455
+ QQWorld_auto_save_images.are_your_sure = '<?php _e('Are you sure?<br />Before you click the yes button, I recommend backup site database.', 'qqworld_auto_save_images'); ?>';
456
+ QQWorld_auto_save_images.pls_select_post_types = '<?php _e('Please select post types.', 'qqworld_auto_save_images'); ?>';
457
  QQWorld_auto_save_images.scan = function(respond, r) {
458
  var $ = jQuery;
459
  if (typeof respond[r] == 'undefined') {
460
+ $('#scan-result').effect( 'shake', null, 500 );
461
+ $('#form').slideDown('slow');
462
  $('body').data('noty').close();
463
+ var count = $('#scan_old_post_list tbody tr').length;
464
+ var count_remote_images = $('#scan_old_post_list tbody tr.has_remote_images').length;
465
+ var count_not_exits_remote_images = $('#scan_old_post_list tbody tr.has_not_exits_remote_images').length;
466
+ var count = $('#scan_old_post_list tbody tr').length;
467
+ if (count) {
468
+ if (count==1) count_html = sprintf("<?php _e( '%d post has been scanned.', 'qqworld_auto_save_images'); ?>", count);
469
+ else count_html = sprintf("<?php _e( '%d posts have been scanned.', 'qqworld_auto_save_images'); ?>", count);
470
+ if (count_remote_images) {
471
+ count_remote_images = count_remote_images - count_not_exits_remote_images;
472
+ if (count_remote_images<=1) count_html += sprintf("<br /><?php _e( '%d post including remote images have been processed.', 'qqworld_auto_save_images'); ?>", count_remote_images);
473
+ else count_html += sprintf("<br /><?php _e( '%d posts including remote images have been processed.', 'qqworld_auto_save_images'); ?>", count_remote_images);
474
+ if (count_not_exits_remote_images) {
475
+ if (count_remote_images==1) count_html += sprintf("<br /><?php _e( "%d post including remote images those not exist couldn't be processed.", 'qqworld_auto_save_images'); ?>", count_not_exits_remote_images);
476
+ else count_html += sprintf("<br /><?php _e( "%d posts including remote images those not exist couldn't be processed.", 'qqworld_auto_save_images'); ?>", count_not_exits_remote_images);
477
+ }
478
+ }
479
+ } else {
480
+ $('#scan_old_post_list').slideUp('slow');
481
+ count_html = '<?php _e('No posts found.', 'qqworld_auto_save_images'); ?>';
482
+ }
483
  noty({
484
+ text: '<?php _e('All done.', 'qqworld_auto_save_images'); ?><br />'+count_html,
485
  type: 'success',
486
+ layout: 'center',
487
+ dismissQueue: true,
488
+ modal: true
489
  });
490
  $('#scan_old_posts').removeAttr('disabled');
491
+ $('#list_all_posts').removeAttr('disabled');
492
  return;
493
  }
494
  var speed = parseInt($('select[name="speed"]').val()),
510
  }
511
  });
512
  };
513
+ QQWorld_auto_save_images.list = function(respond, r) {
514
+ var $ = jQuery;
515
+ if (typeof respond[r] == 'undefined') {
516
+ $('#scan-result').effect( 'shake', null, 500 );
517
+ $('#form').slideDown('slow');
518
+ $('body').data('noty').close();
519
+ var count = $('#scan_old_post_list tbody tr').length;
520
+ var count_remote_images = $('#scan_old_post_list tbody tr.has_remote_images').length;
521
+ var count_not_exits_remote_images = $('#scan_old_post_list tbody tr.has_not_exits_remote_images').length;
522
+ if (count) {
523
+ if (count==1) count_html = sprintf("<?php _e( '%d post has been scanned.', 'qqworld_auto_save_images'); ?>", count);
524
+ else count_html = sprintf("<?php _e( '%d posts have been scanned.', 'qqworld_auto_save_images'); ?>", count);
525
+ if (count_remote_images) {
526
+ if (count_remote_images==1) count_html += sprintf("<br /><?php _e( 'found %d post including remote images.', 'qqworld_auto_save_images'); ?>", count_remote_images);
527
+ else count_html += sprintf("<br /><?php _e( 'found %d posts including remote images.', 'qqworld_auto_save_images'); ?>", count_remote_images);
528
+ if (count_not_exits_remote_images) {
529
+ if (count_remote_images==1) count_html += sprintf("<br /><?php _e( "And with %d post including remote images those not exist.", 'qqworld_auto_save_images'); ?>", count_not_exits_remote_images);
530
+ else count_html += sprintf("<br /><?php _e( "And with %d posts including remote images those not exist.", 'qqworld_auto_save_images'); ?>", count_not_exits_remote_images);
531
+ }
532
+ } else count_html += '<br /><?php _e('No post has remote images found.', 'qqworld_auto_save_images'); ?>';
533
+ } else {
534
+ $('#scan_old_post_list').slideUp('slow');
535
+ count_html = '<?php _e('No posts found.', 'qqworld_auto_save_images'); ?>';
536
+ }
537
+ noty({
538
+ text: '<?php _e('All done.', 'qqworld_auto_save_images'); ?><br />'+count_html,
539
+ type: 'success',
540
+ layout: 'center',
541
+ dismissQueue: true,
542
+ modal: true
543
+ });
544
+ $('#scan_old_posts').removeAttr('disabled');
545
+ $('#list_all_posts').removeAttr('disabled');
546
+ return;
547
+ }
548
+ var speed = parseInt($('select[name="speed"]').val()),
549
+ post_id = new Array;
550
+ var data = 'action=save_remote_images_list_all_posts';
551
+ for (var p=r; p<r+speed; p++) {
552
+ if (typeof respond[p] != 'undefined') data += '&post_id[]='+respond[p]['ID'];
553
+ }
554
+ $.ajax({
555
+ type: 'POST',
556
+ url: ajaxurl,
557
+ data: data,
558
+ success: function(data) {
559
+ data = $(data);
560
+ $('#scan_old_post_list tbody').append(data);
561
+ data.hide().fadeIn('fast');
562
+ r += speed;
563
+ QQWorld_auto_save_images.list(respond, r);
564
+ },
565
+ error: function (XMLHttpRequest, textStatus, errorThrown) {
566
+ if (XMLHttpRequest) console.log('XMLHttpRequest: ' + XMLHttpRequest);
567
+ else if (textStatus) console.log('textStatus: ' + textStatus);
568
+ else if (errorThrown) console.log('errorThrown' + errorThrown);
569
+ console.log(this);
570
+ }
571
+ });
572
+ };
573
+ QQWorld_auto_save_images.if_not_select_post_type = function() {
574
+ var $ = jQuery;
575
+ $('#post_types_list').effect( 'shake', null, 500 );
576
+ var n = noty({
577
+ text: QQWorld_auto_save_images.pls_select_post_types,
578
+ type: 'error',
579
+ dismissQueue: true,
580
+ layout: 'bottomCenter',
581
+ timeout: 3000
582
+ });
583
+ }
584
  QQWorld_auto_save_images.events = function() {
585
  var $ = jQuery;
586
+ $(".icon.help").tooltip({
587
+ show: {
588
+ effect: "slideDown",
589
+ delay: 250
590
+ }
591
+ });
592
  $('select[name="posts_per_page"]').on('change', function() {
593
  if ($(this).val() == '-1') $('input[name="offset"]').attr('disabled', true);
594
  else $('input[name="offset"]').removeAttr('disabled', true);
612
  addClass: 'button button-primary',
613
  text: '<?php _e('Yes'); ?>',
614
  onClick: function ($noty) {
615
+ $('#form').slideUp('slow');
616
  $noty.close();
617
  $('#scan_old_posts').attr('disabled', true);
618
+ $('#list_all_posts').attr('disabled', true);
619
  var data = $('#form').serialize()+'&action=get_scan_list';
620
  $.ajax({
621
  type: 'POST',
636
  $('body').data('noty', noty({
637
  text: '<?php _e('Scanning...', 'qqworld_auto_save_images'); ?>',
638
  type: 'notification',
639
+ layout: 'center',
640
  dismissQueue: true
641
  }) );
642
  QQWorld_auto_save_images.scan(respond, 0);
653
  }
654
  ]
655
  });
656
+ } else QQWorld_auto_save_images.if_not_select_post_type();
657
+ });
658
+ $('#list_all_posts').on('click', function() {
659
+ if (jQuery('input[name="qqworld_auto_save_imagess_post_types[]"]:checked').length) {
660
+ $('#form').slideUp('slow');
661
+ $('#scan_old_posts').attr('disabled', true);
662
+ $('#list_all_posts').attr('disabled', true);
663
+ var data = $('#form').serialize()+'&action=get_scan_list';
664
+ $.ajax({
665
+ type: 'POST',
666
+ url: ajaxurl,
667
+ data: data,
668
+ dataType: 'json',
669
+ success: function(respond) {
670
+ $('#scan-result').html('<table id="scan_old_post_list">\
671
+ \ <thead>\
672
+ \ <th><?php _e('ID'); ?></th>\
673
+ \ <th><?php _e('Post Type', 'qqworld_auto_save_images'); ?></th>\
674
+ \ <th><?php _e('Title'); ?></th>\
675
+ \ <th><?php _e('Status'); ?></th>\
676
+ \ <th><?php _e('Control', 'qqworld_auto_save_images'); ?></th>\
677
+ \ </thead>\
678
+ \ <tbody>\
679
+ \ </tbody>\
680
+ \</table>');
681
+ $('body').data('noty', noty({
682
+ text: '<?php _e('Listing...', 'qqworld_auto_save_images'); ?>',
683
+ type: 'notification',
684
+ layout: 'center',
685
+ dismissQueue: true
686
+ }) );
687
+ QQWorld_auto_save_images.list(respond, 0);
688
+ }
689
  });
690
+ } else QQWorld_auto_save_images.if_not_select_post_type();
691
  });
692
+ $(document).on('click', '#scan_old_post_list .fetch-remote-images', function() {
693
+ var wait = '<img src="data:image/gif;base64,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" />';
694
+ var post_id = $(this).attr('post-id');
695
+ $(this).hide().after(wait);
696
+ var data = 'action=save_remote_images_after_scan&post_id[]='+post_id;
697
+ $.ajax({
698
+ type: 'POST',
699
+ url: ajaxurl,
700
+ data: data,
701
+ success: function(data) {
702
+ $('#list-'+post_id).html('<span class="green"><?php _e('Done'); ?></span>');
703
+ }
704
+ });
705
+ })
706
  };
707
+ jQuery(function($) {
708
+ QQWorld_auto_save_images.events();
709
+ });
710
  </script>
711
  <p class="submit"><input type="submit" value="<?php _e('Save Changes') ?>" class="button-primary" name="Submit" /></p>
712
  </form>
 
713
  <?php
714
  }
715
 
765
  if ( defined('DOING_AUTOSAVE') && DOING_AUTOSAVE )
766
  return;
767
 
768
+ $post_id = $_POST['post_id'];
769
+
770
  if ( !current_user_can('edit_post', $post_id) )
771
  return;
772
 
 
773
  $content = $this->js_unescape($_POST['content']);
774
 
775
+ $preg=preg_match_all($this->preg,stripslashes($content),$matches);
776
  if($preg){
777
  foreach($matches[1] as $image_url){
778
  if(empty($image_url)) continue;
803
 
804
  $post=get_post($post_id);
805
  $content=$post->post_content;
806
+ $preg=preg_match_all($this->preg,stripslashes($content),$matches);
807
  if($preg){
808
  foreach($matches[1] as $image_url){
809
  if(empty($image_url)) continue;
823
 
824
  //save exterior images
825
  function save_images($image_url, $post_id){
826
+ set_time_limit(0);
827
  if ( $file=@file_get_contents($image_url) ) {
828
  $filename=basename($image_url);
829
  preg_match( '/(.*?)(\.\w+)$/', $filename, $match );