From a766be632e0fc20a7d314fd5cb17c6bb784d20e6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Dawid=20Je=C5=BC?= Date: Tue, 23 Feb 2021 20:09:26 +0100 Subject: [PATCH 1/3] code refactor --- .editorconfig | 199 ++++++++++++++++++++++++++++++ .idea/.gitignore | 8 ++ .idea/Media-downloader.iml | 8 ++ .idea/modules.xml | 8 ++ .idea/vcs.xml | 6 + .idea/watcherTasks.xml | 31 +++++ css/style.css.map | 1 - less/style.less | 163 ------------------------ manifest.json | 44 ++++--- popup.html | 123 +++++++++--------- scripts/content.js | 53 ++++---- scripts/extension.js | 247 +++++++++++++++++++------------------ {css => styles}/style.css | 0 styles/style.css.map | 1 + styles/style.less | 189 ++++++++++++++++++++++++++++ 15 files changed, 696 insertions(+), 385 deletions(-) create mode 100644 .editorconfig create mode 100644 .idea/.gitignore create mode 100644 .idea/Media-downloader.iml create mode 100644 .idea/modules.xml create mode 100644 .idea/vcs.xml create mode 100644 .idea/watcherTasks.xml delete mode 100644 css/style.css.map delete mode 100644 less/style.less rename {css => styles}/style.css (100%) create mode 100644 styles/style.css.map create mode 100644 styles/style.less diff --git a/.editorconfig b/.editorconfig new file mode 100644 index 0000000..dd3ab82 --- /dev/null +++ b/.editorconfig @@ -0,0 +1,199 @@ +root = true + +[*] +charset = utf-8 +end_of_line = crlf +indent_size = 2 +indent_style = space +insert_final_newline = false +max_line_length = 120 +tab_width = 2 +ij_continuation_indent_size = 4 +ij_formatter_off_tag = @formatter:off +ij_formatter_on_tag = @formatter:on +ij_formatter_tags_enabled = false +ij_smart_tabs = false +ij_visual_guides = none +ij_wrap_on_typing = false + +[*.less] +ij_less_align_closing_brace_with_properties = false +ij_less_blank_lines_around_nested_selector = 1 +ij_less_blank_lines_between_blocks = 1 +ij_less_brace_placement = 0 +ij_less_enforce_quotes_on_format = false +ij_less_hex_color_long_format = false +ij_less_hex_color_lower_case = false +ij_less_hex_color_short_format = false +ij_less_hex_color_upper_case = false +ij_less_keep_blank_lines_in_code = 2 +ij_less_keep_indents_on_empty_lines = false +ij_less_keep_single_line_blocks = false +ij_less_properties_order = font,font-family,font-size,font-weight,font-style,font-variant,font-size-adjust,font-stretch,line-height,position,z-index,top,right,bottom,left,display,visibility,float,clear,overflow,overflow-x,overflow-y,clip,zoom,align-content,align-items,align-self,flex,flex-flow,flex-basis,flex-direction,flex-grow,flex-shrink,flex-wrap,justify-content,order,box-sizing,width,min-width,max-width,height,min-height,max-height,margin,margin-top,margin-right,margin-bottom,margin-left,padding,padding-top,padding-right,padding-bottom,padding-left,table-layout,empty-cells,caption-side,border-spacing,border-collapse,list-style,list-style-position,list-style-type,list-style-image,content,quotes,counter-reset,counter-increment,resize,cursor,user-select,nav-index,nav-up,nav-right,nav-down,nav-left,transition,transition-delay,transition-timing-function,transition-duration,transition-property,transform,transform-origin,animation,animation-name,animation-duration,animation-play-state,animation-timing-function,animation-delay,animation-iteration-count,animation-direction,text-align,text-align-last,vertical-align,white-space,text-decoration,text-emphasis,text-emphasis-color,text-emphasis-style,text-emphasis-position,text-indent,text-justify,letter-spacing,word-spacing,text-outline,text-transform,text-wrap,text-overflow,text-overflow-ellipsis,text-overflow-mode,word-wrap,word-break,tab-size,hyphens,pointer-events,opacity,color,border,border-width,border-style,border-color,border-top,border-top-width,border-top-style,border-top-color,border-right,border-right-width,border-right-style,border-right-color,border-bottom,border-bottom-width,border-bottom-style,border-bottom-color,border-left,border-left-width,border-left-style,border-left-color,border-radius,border-top-left-radius,border-top-right-radius,border-bottom-right-radius,border-bottom-left-radius,border-image,border-image-source,border-image-slice,border-image-width,border-image-outset,border-image-repeat,outline,outline-width,outline-style,outline-color,outline-offset,background,background-color,background-image,background-repeat,background-attachment,background-position,background-position-x,background-position-y,background-clip,background-origin,background-size,box-decoration-break,box-shadow,text-shadow +ij_less_space_after_colon = true +ij_less_space_before_opening_brace = true +ij_less_use_double_quotes = true +ij_less_value_alignment = 0 + +[{*.cjs,*.js}] +ij_javascript_align_imports = false +ij_javascript_align_multiline_array_initializer_expression = false +ij_javascript_align_multiline_binary_operation = false +ij_javascript_align_multiline_chained_methods = false +ij_javascript_align_multiline_extends_list = false +ij_javascript_align_multiline_for = true +ij_javascript_align_multiline_parameters = true +ij_javascript_align_multiline_parameters_in_calls = false +ij_javascript_align_multiline_ternary_operation = false +ij_javascript_align_object_properties = 0 +ij_javascript_align_union_types = false +ij_javascript_align_var_statements = 0 +ij_javascript_array_initializer_new_line_after_left_brace = false +ij_javascript_array_initializer_right_brace_on_new_line = false +ij_javascript_array_initializer_wrap = off +ij_javascript_assignment_wrap = off +ij_javascript_binary_operation_sign_on_next_line = false +ij_javascript_binary_operation_wrap = off +ij_javascript_blank_lines_after_imports = 1 +ij_javascript_blank_lines_around_class = 1 +ij_javascript_blank_lines_around_field = 0 +ij_javascript_blank_lines_around_function = 1 +ij_javascript_blank_lines_around_method = 1 +ij_javascript_block_brace_style = end_of_line +ij_javascript_call_parameters_new_line_after_left_paren = false +ij_javascript_call_parameters_right_paren_on_new_line = false +ij_javascript_call_parameters_wrap = off +ij_javascript_catch_on_new_line = false +ij_javascript_chained_call_dot_on_new_line = true +ij_javascript_class_brace_style = end_of_line +ij_javascript_comma_on_new_line = false +ij_javascript_do_while_brace_force = always +ij_javascript_else_on_new_line = false +ij_javascript_enforce_trailing_comma = keep +ij_javascript_extends_keyword_wrap = off +ij_javascript_extends_list_wrap = off +ij_javascript_field_prefix = _ +ij_javascript_file_name_style = relaxed +ij_javascript_finally_on_new_line = false +ij_javascript_for_brace_force = always +ij_javascript_for_statement_new_line_after_left_paren = false +ij_javascript_for_statement_right_paren_on_new_line = false +ij_javascript_for_statement_wrap = off +ij_javascript_force_quote_style = false +ij_javascript_force_semicolon_style = false +ij_javascript_function_expression_brace_style = end_of_line +ij_javascript_if_brace_force = always +ij_javascript_import_merge_members = global +ij_javascript_import_prefer_absolute_path = global +ij_javascript_import_sort_members = true +ij_javascript_import_sort_module_name = false +ij_javascript_import_use_node_resolution = true +ij_javascript_imports_wrap = on_every_item +ij_javascript_indent_case_from_switch = true +ij_javascript_indent_chained_calls = true +ij_javascript_indent_package_children = 0 +ij_javascript_jsx_attribute_value = braces +ij_javascript_keep_blank_lines_in_code = 2 +ij_javascript_keep_first_column_comment = true +ij_javascript_keep_indents_on_empty_lines = false +ij_javascript_keep_line_breaks = true +ij_javascript_keep_simple_blocks_in_one_line = false +ij_javascript_keep_simple_methods_in_one_line = false +ij_javascript_line_comment_add_space = true +ij_javascript_line_comment_at_first_column = false +ij_javascript_method_brace_style = end_of_line +ij_javascript_method_call_chain_wrap = off +ij_javascript_method_parameters_new_line_after_left_paren = false +ij_javascript_method_parameters_right_paren_on_new_line = false +ij_javascript_method_parameters_wrap = off +ij_javascript_object_literal_wrap = on_every_item +ij_javascript_parentheses_expression_new_line_after_left_paren = false +ij_javascript_parentheses_expression_right_paren_on_new_line = false +ij_javascript_place_assignment_sign_on_next_line = false +ij_javascript_prefer_as_type_cast = false +ij_javascript_prefer_explicit_types_function_expression_returns = false +ij_javascript_prefer_explicit_types_function_returns = false +ij_javascript_prefer_explicit_types_vars_fields = false +ij_javascript_prefer_parameters_wrap = false +ij_javascript_reformat_c_style_comments = false +ij_javascript_space_after_colon = true +ij_javascript_space_after_comma = true +ij_javascript_space_after_dots_in_rest_parameter = false +ij_javascript_space_after_generator_mult = true +ij_javascript_space_after_property_colon = true +ij_javascript_space_after_quest = true +ij_javascript_space_after_type_colon = true +ij_javascript_space_after_unary_not = false +ij_javascript_space_before_async_arrow_lparen = true +ij_javascript_space_before_catch_keyword = true +ij_javascript_space_before_catch_left_brace = true +ij_javascript_space_before_catch_parentheses = true +ij_javascript_space_before_class_lbrace = true +ij_javascript_space_before_class_left_brace = true +ij_javascript_space_before_colon = true +ij_javascript_space_before_comma = false +ij_javascript_space_before_do_left_brace = true +ij_javascript_space_before_else_keyword = true +ij_javascript_space_before_else_left_brace = true +ij_javascript_space_before_finally_keyword = true +ij_javascript_space_before_finally_left_brace = true +ij_javascript_space_before_for_left_brace = true +ij_javascript_space_before_for_parentheses = true +ij_javascript_space_before_for_semicolon = false +ij_javascript_space_before_function_left_parenth = true +ij_javascript_space_before_generator_mult = false +ij_javascript_space_before_if_left_brace = true +ij_javascript_space_before_if_parentheses = true +ij_javascript_space_before_method_call_parentheses = false +ij_javascript_space_before_method_left_brace = true +ij_javascript_space_before_method_parentheses = false +ij_javascript_space_before_property_colon = false +ij_javascript_space_before_quest = true +ij_javascript_space_before_switch_left_brace = true +ij_javascript_space_before_switch_parentheses = true +ij_javascript_space_before_try_left_brace = true +ij_javascript_space_before_type_colon = false +ij_javascript_space_before_unary_not = false +ij_javascript_space_before_while_keyword = true +ij_javascript_space_before_while_left_brace = true +ij_javascript_space_before_while_parentheses = true +ij_javascript_spaces_around_additive_operators = true +ij_javascript_spaces_around_arrow_function_operator = true +ij_javascript_spaces_around_assignment_operators = true +ij_javascript_spaces_around_bitwise_operators = true +ij_javascript_spaces_around_equality_operators = true +ij_javascript_spaces_around_logical_operators = true +ij_javascript_spaces_around_multiplicative_operators = true +ij_javascript_spaces_around_relational_operators = true +ij_javascript_spaces_around_shift_operators = true +ij_javascript_spaces_around_unary_operator = false +ij_javascript_spaces_within_array_initializer_brackets = false +ij_javascript_spaces_within_brackets = false +ij_javascript_spaces_within_catch_parentheses = false +ij_javascript_spaces_within_for_parentheses = false +ij_javascript_spaces_within_if_parentheses = false +ij_javascript_spaces_within_imports = false +ij_javascript_spaces_within_interpolation_expressions = false +ij_javascript_spaces_within_method_call_parentheses = false +ij_javascript_spaces_within_method_parentheses = false +ij_javascript_spaces_within_object_literal_braces = false +ij_javascript_spaces_within_object_type_braces = true +ij_javascript_spaces_within_parentheses = false +ij_javascript_spaces_within_switch_parentheses = false +ij_javascript_spaces_within_type_assertion = false +ij_javascript_spaces_within_union_types = true +ij_javascript_spaces_within_while_parentheses = false +ij_javascript_special_else_if_treatment = true +ij_javascript_ternary_operation_signs_on_next_line = false +ij_javascript_ternary_operation_wrap = off +ij_javascript_union_types_wrap = on_every_item +ij_javascript_use_chained_calls_group_indents = false +ij_javascript_use_double_quotes = true +ij_javascript_use_explicit_js_extension = global +ij_javascript_use_path_mapping = always +ij_javascript_use_public_modifier = false +ij_javascript_use_semicolon_after_statement = true +ij_javascript_var_declaration_wrap = normal +ij_javascript_while_brace_force = always +ij_javascript_while_on_new_line = false +ij_javascript_wrap_comments = false diff --git a/.idea/.gitignore b/.idea/.gitignore new file mode 100644 index 0000000..42a0a2a --- /dev/null +++ b/.idea/.gitignore @@ -0,0 +1,8 @@ +# Default ignored files +/shelf/ +/workspace.xml +# Datasource local storage ignored files +/../../../../../../:\Users\dawid\projects\Media-downloader\.idea/dataSources/ +/dataSources.local.xml +# Editor-based HTTP Client requests +/httpRequests/ diff --git a/.idea/Media-downloader.iml b/.idea/Media-downloader.iml new file mode 100644 index 0000000..c956989 --- /dev/null +++ b/.idea/Media-downloader.iml @@ -0,0 +1,8 @@ + + + + + + + + \ No newline at end of file diff --git a/.idea/modules.xml b/.idea/modules.xml new file mode 100644 index 0000000..fa708c4 --- /dev/null +++ b/.idea/modules.xml @@ -0,0 +1,8 @@ + + + + + + + + \ No newline at end of file diff --git a/.idea/vcs.xml b/.idea/vcs.xml new file mode 100644 index 0000000..94a25f7 --- /dev/null +++ b/.idea/vcs.xml @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/.idea/watcherTasks.xml b/.idea/watcherTasks.xml new file mode 100644 index 0000000..2c91a19 --- /dev/null +++ b/.idea/watcherTasks.xml @@ -0,0 +1,31 @@ + + + + + + + + \ No newline at end of file diff --git a/css/style.css.map b/css/style.css.map deleted file mode 100644 index cf4832e..0000000 --- a/css/style.css.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"sources":["../less/style.less"],"names":[],"mappings":"AAAA;EACI,aAAa,YAAY,mCAAzB;EACA,eAAA;;AAFJ,IAGI;EACI,iBAAA;EACA,iBAAA;EACA,YAAA;EACA,iBAAA;;AAPR,IAGI,WAKI,GACI;EACI,WAAA;EACA,WAAA;EACA,kBAAA;;AAZhB,IAGI,WAKI,GAMI;EACI,YAAA;EACA,WAAA;EACA,YAAA;EACA,eAAA;;AAlBhB,IAGI,WAkBI;EACI,gBAAA;EACA,uBAAA;EACA,gBAAA;EACA,gBAAA;;AAzBZ,IAGI,WAwBI;EACI,WAAA;EACA,YAAA;;AA7BZ,IAGI,WAwBI,OAGI;EACI,WAAA;EACA,YAAA;EACA,WAAA;;AAjChB,IAGI,WAwBI,OAGI,QAII;EACI,WAAA;EACA,WAAA;EACA,YAAA;EACA,gBAAA;EACA,iBAAA;EACA,eAAA;;AAxCpB,IAGI,WAwBI,OAGI,QAII,QAOI;EACI,UAAA;EACA,WAAA;;AA3CxB,IAGI,WAwBI,OAGI,QAII,QAWI;EACI,YAAA;EACA,kBAAA;;AACA,IA7CpB,WAwBI,OAGI,QAII,QAWI,WAGK;EACG,kBAAA;EACA,WAAA;EACA,YAAA;EACA,iBAAA;EACA,kBAAA;EACA,eAAA;EACA,iBAAA;EACA,YAAA;EACA,eAAA;;AAOA,IA7DxB,WAwBI,OAGI,QA+BK,OACG,QACI,WACK;EACG,SAAS,GAAT;;AAJhB,IA1DZ,WAwBI,OAGI,QA+BK,OAQG;AARJ,IA1DZ,WAwBI,OAGI,QA+BK,OAQa;EACN,cAAA;;AASI,IA5ExB,WAwBI,OAGI,QA8CK,IAAI,SACD,QACI,WACK;EACG,SAAS,GAAT;;AAJhB,IAzEZ,WAwBI,OAGI,QA8CK,IAAI,SAQD;AARJ,IAzEZ,WAwBI,OAGI,QA8CK,IAAI,SAQS;EACN,aAAA;;AAGR,IArFZ,WAwBI,OAGI,QA0DK,eACG,SACI,GACI;EACI,gBAAA;EACA,kBAAA;EAgBA,YAAA;;AAfA,IA3F5B,WAwBI,OAGI,QA0DK,eACG,SACI,GACI,GAGK;EACG,eAAA;;AAPpB,IArFZ,WAwBI,OAGI,QA0DK,eACG,SACI,GACI,GAMI;EACI,0CAAA;EACA,yBAAA;EACA,2BAAA;EACA,wBAAA;EACA,4BAAA;EACA,WAAA;EACA,YAAA;EACA,eAAA;EACA,WAAA;EACA,gBAAA;;AAnBpB,IArFZ,WAwBI,OAGI,QA0DK,eACG,SACI,GACI,GAmBI;EACI,WAAA;EACA,YAAA;EACA,iBAAA;EACA,eAAA;EACA,SAAA;;AA3BpB,IArFZ,WAwBI,OAGI,QA0DK,eACG,SACI,GACI,GAmBI,MAMI;EACI,WAAA;EACA,WAAA;EACA,YAAA;EACA,YAAA;;AAhCxB,IArFZ,WAwBI,OAGI,QA0DK,eACG,SACI,GACI,GAgCI;EACI,WAAA;EACA,YAAA;EACA,wCAAA;EACA,kCAAA;EACA,4BAAA;EACA,wBAAA;EACA,kBAAA;EACA,gBAAA;EACA,UAAA;;AA5CpB,IArFZ,WAwBI,OAGI,QA0DK,eACG,SACI,GACI,GA2CI;EACI,WAAA;EACA,YAAA;EACA,kCAAA;EACA,4BAAA;EACA,wBAAA;EACA,kBAAA;EACA,eAAA;EACA,UAAA;;AAtDpB,IArFZ,WAwBI,OAGI,QA0DK,eACG,SACI,GACI,GAqDI;EACI,WAAA;EACA,YAAA;EACA,iBAAA;EACA,WAAA;EACA,wBAAA;;AAEJ,IApJ5B,WAwBI,OAGI,QA0DK,eACG,SACI,GACI,GA4DK;AACD,IArJ5B,WAwBI,OAGI,QA0DK,eACG,SACI,GACI,GA6DK;EACG,iBAAA","file":"style.css"} \ No newline at end of file diff --git a/less/style.less b/less/style.less deleted file mode 100644 index 7e5bf72..0000000 --- a/less/style.less +++ /dev/null @@ -1,163 +0,0 @@ -body{ - font-family: "Segoe UI", "Lucida Grande", Tahoma, sans-serif; - font-size: 100%; - .container { - max-height: 600px; - min-height: 300px; - width: 600px; - background: white; - h3{ - img{ - width: 30px; - float: left; - margin-right: 10px; - } - .refresh{ - height: 20px; - width: 50px; - float: right; - font-size: 12px; - } - } - #status { - white-space: pre; - text-overflow: ellipsis; - overflow: hidden; - max-width: 500px; - } - #media{ - width: 100%; - height: auto; - section{ - width: 100%; - height: auto; - float: left; - .header{ - width: 100%; - float: left; - height: auto; - background: #eee; - line-height: 25px; - padding: 0 10px; - .title{ - width: 50%; - float: left; - } - .show-hide{ - float: right; - position: relative; - &::after{ - position: absolute; - width: 30px; - height: 30px; - line-height: 30px; - text-align: center; - cursor: pointer; - font-weight: bold; - right: -10px; - font-size: 20px; - } - } - } - &.opened{ - .header{ - .show-hide{ - &::after{ - content: '-'; - } - } - } - .filters, .content{ - display: block; - } - .filters{ - button{} - } - } - &:not(.opened){ - .header{ - .show-hide{ - &::after{ - content: '+'; - } - } - } - .filters, .content{ - display: none; - } - } - &.images-section{ - .content{ - tr{ - td{ - background: #eee; - position: relative; - &:first-child{ - max-width: 50px; - } - .download-image-button{ - background-image: url(../img/download.png); - background-color: #3b94c7; - background-position: center; - background-size: contain; - background-repeat: no-repeat; - width: 20px; - height: 20px; - cursor: pointer; - float: left; - margin: 15px 0px; - } - padding: 5px; - label{ - width: 100%; - height: 50px; - line-height: 50px; - cursor: pointer; - margin: 0; - .image-checkbox{ - float: left; - width: 15px; - height: 15px; - margin: 17px; - } - } - .loader{ - width: 50px; - height: 50px; - background-image: url(../img/loader.gif); - background-position: center center; - background-repeat: no-repeat; - background-size: contain; - position: absolute; - margin-left: 5px; - z-index: 1; - } - .image{ - width: 50px; - height: 50px; - background-position: center center; - background-repeat: no-repeat; - background-size: contain; - position: absolute; - margin: 0px 5px; - z-index: 2; - } - .text{ - width: auto; - height: 50px; - line-height: 50px; - float: left; - margin: 0px 5px 0px 60px; - } - &.size, - &.dimensions{ - line-height: 50px; - } - } - } - } - } - } - } - } -} \ No newline at end of file diff --git a/manifest.json b/manifest.json index 43dde49..1ca097f 100644 --- a/manifest.json +++ b/manifest.json @@ -1,22 +1,28 @@ { - "manifest_version": 2, - "name": "Media downloader", - "description": "This extension lets you download images directly from website", - "version": "1.0", - "homepage_url": "https://github.com/rtcoder/Media-downloader", - "browser_action": { - "default_icon": "icon512.png", - "default_popup": "popup.html", - "default_title": "Media Downloader" - }, - "content_scripts": [{ - "matches": [""], - "all_frames": true, - "js": ["scripts/content.js"] - }], - "permissions": [ - "activeTab" - ], - "content_security_policy": "script-src 'self' https://www.gstatic.com/; object-src 'self'" + "manifest_version": 2, + "name": "Media downloader", + "description": "This extension lets you download images directly from website", + "version": "1.0", + "homepage_url": "https://github.com/rtcoder/Media-downloader", + "browser_action": { + "default_icon": "icon512.png", + "default_popup": "popup.html", + "default_title": "Media Downloader" + }, + "content_scripts": [ + { + "matches": [ + "" + ], + "all_frames": true, + "js": [ + "scripts/content.js" + ] + } + ], + "permissions": [ + "activeTab" + ], + "content_security_policy": "script-src 'self' https://www.gstatic.com/; object-src 'self'" } diff --git a/popup.html b/popup.html index 3ebcb6e..6adf058 100644 --- a/popup.html +++ b/popup.html @@ -1,64 +1,69 @@ - - - - - - -
- + + + diff --git a/scripts/content.js b/scripts/content.js index eef2768..9fdf27a 100644 --- a/scripts/content.js +++ b/scripts/content.js @@ -1,26 +1,31 @@ -chrome.runtime.onMessage.addListener(function (request, sender, sendResponse) { - var listElements = document.querySelectorAll(request.search_for); - var els = { - img: [], - video: [], - audio: [] - }; - [].forEach.call(listElements, function (element) { - switch (element.tagName.toLowerCase()) { - case 'img': - let img = { - src: element.src, - alt: element.alt, - title: element.getAttribute('title') - }; - els.img.push(img); - break; - case 'video': - break; - case 'audio': - break; - } - }); - sendResponse({data: request.data, search: request.search_for, elements: els, success: true}); +chrome.runtime.onMessage.addListener((request, sender, sendResponse) => { + const listElements = document.querySelectorAll(request.search_for); + const elements = { + img: [], + video: [], + audio: [] + }; + [...listElements].forEach(element => { + switch (element.tagName.toLowerCase()) { + case 'img': + let img = { + src: element.src, + alt: element.alt, + title: element.getAttribute('title') + }; + elements.img.push(img); + break; + case 'video': + break; + case 'audio': + break; + } + }); + sendResponse({ + data: request.data, + search: request.search_for, + elements, + success: true + }); }); diff --git a/scripts/extension.js b/scripts/extension.js index 2770290..1738609 100644 --- a/scripts/extension.js +++ b/scripts/extension.js @@ -1,144 +1,153 @@ -var urls = []; +let urls = []; + function downloadAll(urls) { - var link = document.createElement('a'); + const link = document.createElement('a'); - link.setAttribute('download', null); - link.style.display = 'none'; + link.setAttribute('download', null); + link.style.display = 'none'; - document.body.appendChild(link); + document.body.appendChild(link); - for (var i = 0; i < urls.length; i++) { - link.setAttribute('href', urls[i]); - link.click(); - } + for (let i = 0; i < urls.length; i++) { + link.setAttribute('href', urls[i]); + link.click(); + } - document.body.removeChild(link); + document.body.removeChild(link); } function bytesToSize(bytes) { - const sizes = ['Bytes', 'KB', 'MB', 'GB', 'TB']; - if (bytes === 0) - return 'n/a'; - const i = parseInt(Math.floor(Math.log(bytes) / Math.log(1024)), 10); - if (i === 0) - return `${bytes} ${sizes[i]}`; - return `${(bytes / (1024 ** i)).toFixed(1)} ${sizes[i]}`; + const sizes = ['Bytes', 'KB', 'MB', 'GB', 'TB']; + if (bytes === 0) { + return 'n/a'; + } + const i = parseInt(Math.floor(Math.log(bytes) / Math.log(1024)), 10); + if (i === 0) { + return `${bytes} ${sizes[i]}`; + } + return `${(bytes / (1024 ** i)).toFixed(1)} ${sizes[i]}`; } + function getImageSizeData(imgURL, callback) { - $.ajax({ - method: 'GET', - url: imgURL - }).success(function (data, textStatus, request) { - callback({ - size: request.getResponseHeader('Content-Length'), - status: request.status - }); + $.ajax({ + method: 'GET', + url: imgURL + }).success((data, textStatus, request) => { + callback({ + size: request.getResponseHeader('Content-Length'), + status: request.status }); + }); } + function hashCode(str) { - return str.split('').reduce((prevHash, currVal) => - ((prevHash << 5) - prevHash) + currVal.charCodeAt(0), 0); + return str.split('').reduce((prevHash, currVal) => + ((prevHash << 5) - prevHash) + currVal.charCodeAt(0), 0); } + function search_content() { - var search_for = []; - if ($('#checkbox-images').is(":checked")) { - search_for.push('img'); - } - if ($('#checkbox-videos').is(":checked")) { - search_for.push('video'); - } - if ($('#checkbox-music').is(":checked")) { - search_for.push('audio'); - } - $('section.images-section .content table tbody').empty(); - chrome.tabs.query({active: true, currentWindow: true}, function (tabs) { - chrome.tabs.sendMessage(tabs[0].id, {search_for: search_for.join(', ')}, function (response) { - let images = []; - if (!response || typeof response === 'undefined') { - return; - } - for (let j in response.elements.img) { - let found = images.find(function (element) { - return element.src === response.elements.img[j].src; - }); - if (typeof found === 'undefined') { - images.push(response.elements.img[j]); - } - } - let errors = 0; - for (let i in images) { - if (images[i].src === "") { - continue; - } - let title = images[i].title ? images[i].title : ""; - let arr = images[i].src.split('/'); - let text = arr[arr.length - 1]; - if (text.length > 20) { - text = text.substr(0, 6) + '...' + text.substr(text.length - 6, 6); - } - let id = hashCode(images[i].src + i); - images[i].image = new Image(); - images[i].image.src = images[i].src; - images[i].image.onload = function () { - getImageSizeData(images[i].image.src, function (data) { - $('tr[data-id=' + id + '] .dimensions').html(images[i].image.width + "px × " + images[i].image.height + "px"); - $('tr[data-id=' + id + '] .size').text(bytesToSize(data.size)); - $('tr[data-id=' + id + '] .loader').remove(); - }); - }; - images[i].image.onerror = function () { - $('tr[data-id=' + id + ']').remove(); - errors++; - $('section.images-section .title span.count').text(images.length - errors); - }; + var search_for = []; + if ($('#checkbox-images').is(":checked")) { + search_for.push('img'); + } + if ($('#checkbox-videos').is(":checked")) { + search_for.push('video'); + } + if ($('#checkbox-music').is(":checked")) { + search_for.push('audio'); + } + $('section.images-section .content table tbody').empty(); + chrome.tabs.query({active: true, currentWindow: true}, function (tabs) { + chrome.tabs.sendMessage(tabs[0].id, {search_for: search_for.join(', ')}, function (response) { + let images = []; + if (!response || typeof response === 'undefined') { + return; + } + for (let j in response.elements.img) { + let found = images.find(function (element) { + return element.src === response.elements.img[j].src; + }); + if (typeof found === 'undefined') { + images.push(response.elements.img[j]); + } + } + let errors = 0; + for (let i in images) { + if (images[i].src === "") { + continue; + } + let title = images[i].title ? images[i].title : ""; + let arr = images[i].src.split('/'); + let text = arr[arr.length - 1]; + if (text.length > 20) { + text = text.substr(0, 6) + '...' + text.substr(text.length - 6, 6); + } + let id = hashCode(images[i].src + i); + images[i].image = new Image(); + images[i].image.src = images[i].src; + images[i].image.onload = function () { + getImageSizeData(images[i].image.src, function (data) { + $('tr[data-id=' + id + '] .dimensions').html(images[i].image.width + "px × " + images[i].image.height + "px"); + $('tr[data-id=' + id + '] .size').text(bytesToSize(data.size)); + $('tr[data-id=' + id + '] .loader').remove(); + }); + }; + images[i].image.onerror = function () { + $('tr[data-id=' + id + ']').remove(); + errors++; + $('section.images-section .title span.count').text(images.length - errors); + }; - let row = '\n\ - \n\ - \n\ - \n\ - \n\ -
\n\ -
\n\ -
' + text + '
\n\ - \n\ - \n\ - \n\ - \n\ - \n\ - \n\ - '; + const imgSource = images[i].src; + let row = ` + + + + +
+
+
${text}
+ + + + + + + `; - $('section.images-section .content table tbody').append(row); - } - $('section.images-section .title span.count').text(images.length); - }); + $('section.images-section .content table tbody').append(row); + } + $('section.images-section .title span.count').text(images.length); }); + }); } document.addEventListener('DOMContentLoaded', function () { - $('.show-hide').click(function () { - $(this).parents('section').toggleClass('opened'); - }); - $('.type-checkbox').change(function () { - if ($(this).is(":checked")) { - $('section.' + $(this).data('type') + '-section').show(); - } else { - $('section.' + $(this).data('type') + '-section').hide(); - } - }); - $('#select-images').change(function () { - $('.image-checkbox').prop('checked', $(this).is(':checked')); - }); + $('.show-hide').click(function () { + $(this).parents('section').toggleClass('opened'); + }); + $('.type-checkbox').change(function () { + if ($(this).is(":checked")) { + $('section.' + $(this).data('type') + '-section').show(); + } else { + $('section.' + $(this).data('type') + '-section').hide(); + } + }); + $('#select-images').change(function () { + $('.image-checkbox').prop('checked', $(this).is(':checked')); + }); - $('.download-selected-images').click(function () { - urls = []; - $('.image-checkbox:checked').each(function () { - let url = $(this).parents('tr').find('.download-image-button').attr('href'); - urls.push(url); - }); - downloadAll(urls); + $('.download-selected-images').click(function () { + urls = []; + $('.image-checkbox:checked').each(function () { + let url = $(this).parents('tr').find('.download-image-button').attr('href'); + urls.push(url); }); - $('.refresh').click(search_content); - search_content(); + downloadAll(urls); + }); + $('.refresh').click(search_content); + search_content(); }); diff --git a/css/style.css b/styles/style.css similarity index 100% rename from css/style.css rename to styles/style.css diff --git a/styles/style.css.map b/styles/style.css.map new file mode 100644 index 0000000..6134f37 --- /dev/null +++ b/styles/style.css.map @@ -0,0 +1 @@ +{"version":3,"sources":["style.less"],"names":[],"mappings":"AAAA;EACE,aAAa,YAAY,mCAAzB;EACA,eAAA;;AAFF,IAIE;EACE,iBAAA;EACA,iBAAA;EACA,YAAA;EACA,iBAAA;;AARJ,IAIE,WAME,GACE;EACE,WAAA;EACA,WAAA;EACA,kBAAA;;AAdR,IAIE,WAME,GAOE;EACE,YAAA;EACA,WAAA;EACA,YAAA;EACA,eAAA;;AArBR,IAIE,WAqBE;EACE,gBAAA;EACA,uBAAA;EACA,gBAAA;EACA,gBAAA;;AA7BN,IAIE,WA4BE;EACE,WAAA;EACA,YAAA;;AAlCN,IAIE,WA4BE,OAIE;EACE,WAAA;EACA,YAAA;EACA,WAAA;;AAvCR,IAIE,WA4BE,OAIE,QAKE;EACE,WAAA;EACA,WAAA;EACA,YAAA;EACA,gBAAA;EACA,iBAAA;EACA,eAAA;;AA/CV,IAIE,WA4BE,OAIE,QAKE,QAQE;EACE,UAAA;EACA,WAAA;;AAnDZ,IAIE,WA4BE,OAIE,QAKE,QAaE;EACE,YAAA;EACA,kBAAA;;AAEA,IAtDV,WA4BE,OAIE,QAKE,QAaE,WAIG;EACC,kBAAA;EACA,WAAA;EACA,YAAA;EACA,iBAAA;EACA,kBAAA;EACA,eAAA;EACA,iBAAA;EACA,YAAA;EACA,eAAA;;AAQA,IAvEZ,WA4BE,OAIE,QAoCG,OACC,QACE,WACG;EACC,SAAS,GAAT;;AAJR,IApEN,WA4BE,OAIE,QAoCG,OASC;AATF,IApEN,WA4BE,OAIE,QAoCG,OASW;EACR,cAAA;;AAYE,IA1FZ,WA4BE,OAIE,QAuDG,IAAI,SACH,QACE,WACG;EACC,SAAS,GAAT;;AAJR,IAvFN,WA4BE,OAIE,QAuDG,IAAI,SASH;AATF,IAvFN,WA4BE,OAIE,QAuDG,IAAI,SASO;EACR,aAAA;;AAIJ,IArGN,WA4BE,OAIE,QAqEG,eACC,SACE,GACE;EACE,gBAAA;EACA,kBAAA;EAmBA,YAAA;;AAjBA,IA5Gd,WA4BE,OAIE,QAqEG,eACC,SACE,GACE,GAIG;EACC,eAAA;;AARV,IArGN,WA4BE,OAIE,QAqEG,eACC,SACE,GACE,GAQE;EACE,0CAAA;EACA,yBAAA;EACA,2BAAA;EACA,wBAAA;EACA,4BAAA;EACA,WAAA;EACA,YAAA;EACA,eAAA;EACA,WAAA;EACA,gBAAA;;AArBV,IArGN,WA4BE,OAIE,QAqEG,eACC,SACE,GACE,GAuBE;EACE,WAAA;EACA,YAAA;EACA,iBAAA;EACA,eAAA;EACA,SAAA;;AA/BV,IArGN,WA4BE,OAIE,QAqEG,eACC,SACE,GACE,GAuBE,MAOE;EACE,WAAA;EACA,WAAA;EACA,YAAA;EACA,YAAA;;AArCZ,IArGN,WA4BE,OAIE,QAqEG,eACC,SACE,GACE,GAsCE;EACE,WAAA;EACA,YAAA;EACA,wCAAA;EACA,kCAAA;EACA,4BAAA;EACA,wBAAA;EACA,kBAAA;EACA,gBAAA;EACA,UAAA;;AAlDV,IArGN,WA4BE,OAIE,QAqEG,eACC,SACE,GACE,GAkDE;EACE,WAAA;EACA,YAAA;EACA,kCAAA;EACA,4BAAA;EACA,wBAAA;EACA,kBAAA;EACA,eAAA;EACA,UAAA;;AA7DV,IArGN,WA4BE,OAIE,QAqEG,eACC,SACE,GACE,GA6DE;EACE,WAAA;EACA,YAAA;EACA,iBAAA;EACA,WAAA;EACA,wBAAA;;AAGF,IA7Kd,WA4BE,OAIE,QAqEG,eACC,SACE,GACE,GAqEG;AACD,IA9Kd,WA4BE,OAIE,QAqEG,eACC,SACE,GACE,GAsEG;EACC,iBAAA","file":"style.css"} \ No newline at end of file diff --git a/styles/style.less b/styles/style.less new file mode 100644 index 0000000..8921915 --- /dev/null +++ b/styles/style.less @@ -0,0 +1,189 @@ +body { + font-family: "Segoe UI", "Lucida Grande", Tahoma, sans-serif; + font-size: 100%; + + .container { + max-height: 600px; + min-height: 300px; + width: 600px; + background: white; + + h3 { + img { + width: 30px; + float: left; + margin-right: 10px; + } + + .refresh { + height: 20px; + width: 50px; + float: right; + font-size: 12px; + } + } + + #status { + white-space: pre; + text-overflow: ellipsis; + overflow: hidden; + max-width: 500px; + } + + #media { + width: 100%; + height: auto; + + section { + width: 100%; + height: auto; + float: left; + + .header { + width: 100%; + float: left; + height: auto; + background: #eee; + line-height: 25px; + padding: 0 10px; + + .title { + width: 50%; + float: left; + } + + .show-hide { + float: right; + position: relative; + + &::after { + position: absolute; + width: 30px; + height: 30px; + line-height: 30px; + text-align: center; + cursor: pointer; + font-weight: bold; + right: -10px; + font-size: 20px; + } + } + } + + &.opened { + .header { + .show-hide { + &::after { + content: '-'; + } + } + } + + .filters, .content { + display: block; + } + + .filters { + button { + } + } + } + + &:not(.opened) { + .header { + .show-hide { + &::after { + content: '+'; + } + } + } + + .filters, .content { + display: none; + } + } + + &.images-section { + .content { + tr { + td { + background: #eee; + position: relative; + + &:first-child { + max-width: 50px; + } + + .download-image-button { + background-image: url(../img/download.png); + background-color: #3b94c7; + background-position: center; + background-size: contain; + background-repeat: no-repeat; + width: 20px; + height: 20px; + cursor: pointer; + float: left; + margin: 15px 0px; + } + + padding: 5px; + + label { + width: 100%; + height: 50px; + line-height: 50px; + cursor: pointer; + margin: 0; + + .image-checkbox { + float: left; + width: 15px; + height: 15px; + margin: 17px; + } + } + + .loader { + width: 50px; + height: 50px; + background-image: url(../img/loader.gif); + background-position: center center; + background-repeat: no-repeat; + background-size: contain; + position: absolute; + margin-left: 5px; + z-index: 1; + } + + .image { + width: 50px; + height: 50px; + background-position: center center; + background-repeat: no-repeat; + background-size: contain; + position: absolute; + margin: 0px 5px; + z-index: 2; + } + + .text { + width: auto; + height: 50px; + line-height: 50px; + float: left; + margin: 0px 5px 0px 60px; + } + + &.size, + &.dimensions { + line-height: 50px; + } + } + } + } + } + } + } + } +} \ No newline at end of file From e6d5d578c930ccf2011db594163b9cb18e6ebcf8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Dawid=20Je=C5=BC?= Date: Wed, 24 Feb 2021 09:07:01 +0100 Subject: [PATCH 2/3] get rid of jquery --- .editorconfig | 10 +- .idea/watcherTasks.xml | 2 +- css/style.css | 145 ++++++++++++++++++++ css/style.css.map | 1 + icon512-white.png | Bin 0 -> 10646 bytes img/loader.gif | Bin 65737 -> 0 bytes less/style.less | 192 +++++++++++++++++++++++++++ manifest.json | 2 +- nbproject/project.properties | 11 -- nbproject/project.xml | 9 -- popup.html | 19 ++- scripts/extension.js | 247 ++++++++++++++++------------------- scripts/jquery.min.js | 6 - scripts/utils.js | 62 +++++++++ styles/style.css | 143 -------------------- styles/style.css.map | 1 - styles/style.less | 189 --------------------------- 17 files changed, 535 insertions(+), 504 deletions(-) create mode 100644 css/style.css create mode 100644 css/style.css.map create mode 100644 icon512-white.png delete mode 100644 img/loader.gif create mode 100644 less/style.less delete mode 100644 nbproject/project.properties delete mode 100644 nbproject/project.xml delete mode 100644 scripts/jquery.min.js create mode 100644 scripts/utils.js delete mode 100644 styles/style.css delete mode 100644 styles/style.css.map delete mode 100644 styles/style.less diff --git a/.editorconfig b/.editorconfig index dd3ab82..793318e 100644 --- a/.editorconfig +++ b/.editorconfig @@ -21,7 +21,7 @@ ij_less_align_closing_brace_with_properties = false ij_less_blank_lines_around_nested_selector = 1 ij_less_blank_lines_between_blocks = 1 ij_less_brace_placement = 0 -ij_less_enforce_quotes_on_format = false +ij_less_enforce_quotes_on_format = true ij_less_hex_color_long_format = false ij_less_hex_color_lower_case = false ij_less_hex_color_short_format = false @@ -32,7 +32,7 @@ ij_less_keep_single_line_blocks = false ij_less_properties_order = font,font-family,font-size,font-weight,font-style,font-variant,font-size-adjust,font-stretch,line-height,position,z-index,top,right,bottom,left,display,visibility,float,clear,overflow,overflow-x,overflow-y,clip,zoom,align-content,align-items,align-self,flex,flex-flow,flex-basis,flex-direction,flex-grow,flex-shrink,flex-wrap,justify-content,order,box-sizing,width,min-width,max-width,height,min-height,max-height,margin,margin-top,margin-right,margin-bottom,margin-left,padding,padding-top,padding-right,padding-bottom,padding-left,table-layout,empty-cells,caption-side,border-spacing,border-collapse,list-style,list-style-position,list-style-type,list-style-image,content,quotes,counter-reset,counter-increment,resize,cursor,user-select,nav-index,nav-up,nav-right,nav-down,nav-left,transition,transition-delay,transition-timing-function,transition-duration,transition-property,transform,transform-origin,animation,animation-name,animation-duration,animation-play-state,animation-timing-function,animation-delay,animation-iteration-count,animation-direction,text-align,text-align-last,vertical-align,white-space,text-decoration,text-emphasis,text-emphasis-color,text-emphasis-style,text-emphasis-position,text-indent,text-justify,letter-spacing,word-spacing,text-outline,text-transform,text-wrap,text-overflow,text-overflow-ellipsis,text-overflow-mode,word-wrap,word-break,tab-size,hyphens,pointer-events,opacity,color,border,border-width,border-style,border-color,border-top,border-top-width,border-top-style,border-top-color,border-right,border-right-width,border-right-style,border-right-color,border-bottom,border-bottom-width,border-bottom-style,border-bottom-color,border-left,border-left-width,border-left-style,border-left-color,border-radius,border-top-left-radius,border-top-right-radius,border-bottom-right-radius,border-bottom-left-radius,border-image,border-image-source,border-image-slice,border-image-width,border-image-outset,border-image-repeat,outline,outline-width,outline-style,outline-color,outline-offset,background,background-color,background-image,background-repeat,background-attachment,background-position,background-position-x,background-position-y,background-clip,background-origin,background-size,box-decoration-break,box-shadow,text-shadow ij_less_space_after_colon = true ij_less_space_before_opening_brace = true -ij_less_use_double_quotes = true +ij_less_use_double_quotes = false ij_less_value_alignment = 0 [{*.cjs,*.js}] @@ -79,8 +79,8 @@ ij_javascript_for_brace_force = always ij_javascript_for_statement_new_line_after_left_paren = false ij_javascript_for_statement_right_paren_on_new_line = false ij_javascript_for_statement_wrap = off -ij_javascript_force_quote_style = false -ij_javascript_force_semicolon_style = false +ij_javascript_force_quote_style = true +ij_javascript_force_semicolon_style = true ij_javascript_function_expression_brace_style = end_of_line ij_javascript_if_brace_force = always ij_javascript_import_merge_members = global @@ -188,7 +188,7 @@ ij_javascript_ternary_operation_signs_on_next_line = false ij_javascript_ternary_operation_wrap = off ij_javascript_union_types_wrap = on_every_item ij_javascript_use_chained_calls_group_indents = false -ij_javascript_use_double_quotes = true +ij_javascript_use_double_quotes = false ij_javascript_use_explicit_js_extension = global ij_javascript_use_path_mapping = always ij_javascript_use_public_modifier = false diff --git a/.idea/watcherTasks.xml b/.idea/watcherTasks.xml index 2c91a19..0022d34 100644 --- a/.idea/watcherTasks.xml +++ b/.idea/watcherTasks.xml @@ -2,7 +2,7 @@ -