Add firefox bloating (przedplamienie FF) #34
@ -1,4 +1,4 @@
 | 
				
			|||||||
FROM docker.io/python:3.11.0a5-alpine3.15
 | 
					FROM docker.io/python:3.11.0rc1-alpine3.16
 | 
				
			||||||
 | 
					
 | 
				
			||||||
# inspired by https://github.com/darktohka/pytesseract-docker/blob/master/Dockerfile
 | 
					# inspired by https://github.com/darktohka/pytesseract-docker/blob/master/Dockerfile
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@ -38,7 +38,6 @@ RUN apk del .dev-deps
 | 
				
			|||||||
RUN rm -f /usr/local/lib/*.a
 | 
					RUN rm -f /usr/local/lib/*.a
 | 
				
			||||||
RUN rm -rf /tmp/* /var/cache/apk/*
 | 
					RUN rm -rf /tmp/* /var/cache/apk/*
 | 
				
			||||||
RUN apk add jq sed nodejs
 | 
					RUN apk add jq sed nodejs
 | 
				
			||||||
COPY ./mozilla /root/.mozilla
 | 
					 | 
				
			||||||
RUN echo https://dl-cdn.alpinelinux.org/alpine/edge/testing >> /etc/apk/repositories
 | 
					RUN echo https://dl-cdn.alpinelinux.org/alpine/edge/testing >> /etc/apk/repositories
 | 
				
			||||||
RUN apk update
 | 
					RUN apk update
 | 
				
			||||||
RUN apk add wmctrl git make gcc musl-dev libx11-dev zlib zlib-dev jpeg-dev
 | 
					RUN apk add wmctrl git make gcc musl-dev libx11-dev zlib zlib-dev jpeg-dev
 | 
				
			||||||
@ -51,6 +50,8 @@ RUN apk add xclip
 | 
				
			|||||||
RUN apk add curl
 | 
					RUN apk add curl
 | 
				
			||||||
RUN apk add vips
 | 
					RUN apk add vips
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					COPY ./mozilla /root/.mozilla
 | 
				
			||||||
 | 
					
 | 
				
			||||||
COPY . /opt
 | 
					COPY . /opt
 | 
				
			||||||
CMD /opt/prepare-firefox.sh
 | 
					CMD /opt/prepare-firefox.sh
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
				
			|||||||
@ -113,9 +113,9 @@ with Image.open(output_file) as im:
 | 
				
			|||||||
    im = im.crop((0, 24, 2880, 1588))
 | 
					    im = im.crop((0, 24, 2880, 1588))
 | 
				
			||||||
    im = im.resize((im.width // 2, im.height // 2))
 | 
					    im = im.resize((im.width // 2, im.height // 2))
 | 
				
			||||||
    thumbnail = im.resize((im.width // 5, im.height // 5))
 | 
					    thumbnail = im.resize((im.width // 5, im.height // 5))
 | 
				
			||||||
    output_filename = domain.replace(".", "_") + "_" + output_suffix
 | 
					    output_filename = domain.replace(".", "_") + "_" + output_suffix.replace("png", "jpg")
 | 
				
			||||||
    thumbnail_filename = domain.replace(".", "_") + "_thumb_" + output_suffix.replace("png", "jpg")
 | 
					    thumbnail_filename = domain.replace(".", "_") + "_thumb_" + output_suffix.replace("png", "jpg")
 | 
				
			||||||
    im.save(output_dir + "/" + output_filename, "PNG")
 | 
					    im.save(output_dir + "/" + output_filename, "JPEG")
 | 
				
			||||||
    thumbnail.save(output_dir + "/" + thumbnail_filename, "JPEG")
 | 
					    thumbnail.save(output_dir + "/" + thumbnail_filename, "JPEG")
 | 
				
			||||||
    print(json.dumps({"new_file":
 | 
					    print(json.dumps({"new_file":
 | 
				
			||||||
                      {
 | 
					                      {
 | 
				
			||||||
 | 
				
			|||||||
@ -1,12 +1,35 @@
 | 
				
			|||||||
regexes = ["allow", "accept", "agree", "akceptuj", /przejdź(?! do główn).*/];
 | 
					console.log("start");
 | 
				
			||||||
avoid = ["dostosuj", "don't"];
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
buttons = Array.from(document.querySelectorAll("*")).filter(
 | 
					regexes = [
 | 
				
			||||||
 | 
					  "allow",
 | 
				
			||||||
 | 
					  "accept",
 | 
				
			||||||
 | 
					  "agree",
 | 
				
			||||||
 | 
					  "akceptuj",
 | 
				
			||||||
 | 
					  "zgadzam",
 | 
				
			||||||
 | 
					  "zezwól",
 | 
				
			||||||
 | 
					  "zgoda",
 | 
				
			||||||
 | 
					  /przejdź(?! do główn).*/,
 | 
				
			||||||
 | 
					];
 | 
				
			||||||
 | 
					avoid = ["dostosuj", "don't", "nie zga", "nie zezw", "tylko"];
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					elements = Array.from(document.querySelectorAll("*"));
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/*  Tik Tok hides the "accept" button within shadowRoot, so it we need to do some digging */
 | 
				
			||||||
 | 
					elements.forEach((element) => {
 | 
				
			||||||
 | 
					  if (element.shadowRoot !== null) {
 | 
				
			||||||
 | 
					    elements.push(...Array.from(element.shadowRoot.querySelectorAll("*")));
 | 
				
			||||||
 | 
					  }
 | 
				
			||||||
 | 
					});
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					buttons = elements.filter(
 | 
				
			||||||
  (e) =>
 | 
					  (e) =>
 | 
				
			||||||
    e.textContent.length < 50 &&
 | 
					    e.textContent.length <
 | 
				
			||||||
 | 
					      70 /* FB has a really long one: Zezwól na korzystanie z niezbędnych i opcjonalnych plików cookie */ &&
 | 
				
			||||||
    regexes.some((regex) => e.textContent.toLowerCase().match(regex) !== null)
 | 
					    regexes.some((regex) => e.textContent.toLowerCase().match(regex) !== null)
 | 
				
			||||||
);
 | 
					);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					console.log("buttons after first filter", buttons);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
operations = [
 | 
					operations = [
 | 
				
			||||||
  (buttons) =>
 | 
					  (buttons) =>
 | 
				
			||||||
    buttons.filter((button) => {
 | 
					    buttons.filter((button) => {
 | 
				
			||||||
@ -17,16 +40,17 @@ operations = [
 | 
				
			|||||||
        !(rect.width == 0 && rect.height == 0)
 | 
					        !(rect.width == 0 && rect.height == 0)
 | 
				
			||||||
      );
 | 
					      );
 | 
				
			||||||
    }),
 | 
					    }),
 | 
				
			||||||
 | 
					  (buttons) =>
 | 
				
			||||||
 | 
					    buttons.filter((e) =>
 | 
				
			||||||
 | 
					      avoid.every((word) => !e.textContent.toLowerCase().includes(word))
 | 
				
			||||||
 | 
					    ),
 | 
				
			||||||
  (buttons) =>
 | 
					  (buttons) =>
 | 
				
			||||||
    buttons.filter((e) => !e.textContent.toLowerCase().includes("only")),
 | 
					    buttons.filter((e) => !e.textContent.toLowerCase().includes("only")),
 | 
				
			||||||
  (buttons) => buttons.filter((e) => e.tagName.toLowerCase() === "button"),
 | 
					  (buttons) => buttons.filter((e) => e.tagName.toLowerCase() === "button"),
 | 
				
			||||||
  (buttons) =>
 | 
					  (buttons) =>
 | 
				
			||||||
    buttons.filter((e) => !e.textContent.toLowerCase().includes("do not")),
 | 
					    buttons.filter((e) => !e.textContent.toLowerCase().includes("do not")),
 | 
				
			||||||
  (buttons) => buttons.filter((e) => e.tagName.toLowerCase() === "a"),
 | 
					  (buttons) => buttons.filter((e) => e.tagName.toLowerCase() === "a"),
 | 
				
			||||||
  (buttons) =>
 | 
					
 | 
				
			||||||
    buttons.filter((e) =>
 | 
					 | 
				
			||||||
      avoid.every((word) => !e.textContent.toLowerCase().includes(word))
 | 
					 | 
				
			||||||
    ),
 | 
					 | 
				
			||||||
  (buttons) =>
 | 
					  (buttons) =>
 | 
				
			||||||
    buttons.filter(
 | 
					    buttons.filter(
 | 
				
			||||||
      (e) => e.tagName.toLowerCase() === "input" && e.type === "submit"
 | 
					      (e) => e.tagName.toLowerCase() === "input" && e.type === "submit"
 | 
				
			||||||
@ -38,14 +62,15 @@ for (const operation of operations) {
 | 
				
			|||||||
    break;
 | 
					    break;
 | 
				
			||||||
  }
 | 
					  }
 | 
				
			||||||
  const result = operation(buttons);
 | 
					  const result = operation(buttons);
 | 
				
			||||||
 | 
					  console.log("RESULT", operation, result);
 | 
				
			||||||
  if (result.length) {
 | 
					  if (result.length) {
 | 
				
			||||||
    buttons = result;
 | 
					    buttons = result;
 | 
				
			||||||
  }
 | 
					  }
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					buttons;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
buttons.forEach((button) => button.click());
 | 
					buttons.forEach((button) => button.click());
 | 
				
			||||||
buttons.forEach((button) => {
 | 
					buttons.forEach((button) => {
 | 
				
			||||||
  button.querySelectorAll("input").forEach((child) => child.click());
 | 
					  button.querySelectorAll("input").forEach((child) => child.click());
 | 
				
			||||||
});
 | 
					});
 | 
				
			||||||
 | 
					 | 
				
			||||||
buttons;
 | 
					 | 
				
			||||||
 | 
				
			|||||||
@ -357,3 +357,5 @@ user_pref("trailhead.firstrun.didSeeAboutWelcome", true);
 | 
				
			|||||||
user_pref("browser.disableResetPrompt", true);
 | 
					user_pref("browser.disableResetPrompt", true);
 | 
				
			||||||
user_pref("devtools.selfxss.count", 100);
 | 
					user_pref("devtools.selfxss.count", 100);
 | 
				
			||||||
user_pref("intl.accept_languages", "pl,en-us");
 | 
					user_pref("intl.accept_languages", "pl,en-us");
 | 
				
			||||||
 | 
					// user_pref("widget.non-native-theme.scrollbar.style", 4);
 | 
				
			||||||
 | 
					user_pref("widget.gtk.overlay-scrollbars.enabled", false); // make the scrollbars visible even if not scrolling
 | 
				
			||||||
 | 
				
			|||||||
@ -1,6 +1,7 @@
 | 
				
			|||||||
#!/bin/bash
 | 
					#!/bin/bash
 | 
				
			||||||
 | 
					
 | 
				
			||||||
export DISPLAY=:0
 | 
					export DISPLAY=:0
 | 
				
			||||||
 | 
					export SCALE_PREVIEW=true # make the previews really small so you only have a small idea of what the server sees
 | 
				
			||||||
 | 
					
 | 
				
			||||||
INPUT="$1"
 | 
					INPUT="$1"
 | 
				
			||||||
ID=$2
 | 
					ID=$2
 | 
				
			||||||
@ -36,8 +37,18 @@ grab bloat_firefox
 | 
				
			|||||||
click 1270 217 # the "trash" icon, so requests from plamienie don't appear in the screenshots
 | 
					click 1270 217 # the "trash" icon, so requests from plamienie don't appear in the screenshots
 | 
				
			||||||
 | 
					
 | 
				
			||||||
load_website "$URL" "$URL"
 | 
					load_website "$URL" "$URL"
 | 
				
			||||||
sleep 7 # sometimes the consent popup needs a little time
 | 
					
 | 
				
			||||||
 | 
					for i in 1 2 3 4 5 6 7
 | 
				
			||||||
 | 
					do
 | 
				
			||||||
 | 
					  xdotool mousemove 28 812 # left side,  middle
 | 
				
			||||||
 | 
					  xdotool click 5 click 5 click 5 click 5 click 5 click 5 # scroll down
 | 
				
			||||||
 | 
					  sleep 1
 | 
				
			||||||
 | 
					done;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					keycombo Control_L Home
 | 
				
			||||||
 | 
					
 | 
				
			||||||
echo "{\"current_action\": \"Strona $ORIGIN_DOMAIN wczytana. Przygotowywanie do analizy...\"}"
 | 
					echo "{\"current_action\": \"Strona $ORIGIN_DOMAIN wczytana. Przygotowywanie do analizy...\"}"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
grab load_website
 | 
					grab load_website
 | 
				
			||||||
open_network_inspector
 | 
					open_network_inspector
 | 
				
			||||||
grab open_network_inspector
 | 
					grab open_network_inspector
 | 
				
			||||||
 | 
				
			|||||||
@ -75,8 +75,12 @@ grab_screen_to_public(){
 | 
				
			|||||||
  rm -f "$tempfile"
 | 
					  rm -f "$tempfile"
 | 
				
			||||||
  scrot "$tempfile"
 | 
					  scrot "$tempfile"
 | 
				
			||||||
  vips crop "$tempfile" "$croppedfile" 0 24 2856 1564
 | 
					  vips crop "$tempfile" "$croppedfile" 0 24 2856 1564
 | 
				
			||||||
  vips resize "$croppedfile" "$scaledfile" 0.1
 | 
					  if [ "$SCALE_PREVIEW" = "true" ]; then
 | 
				
			||||||
  mv -f "$scaledfile" "$filepath"
 | 
					    vips resize "$croppedfile" "$scaledfile" 0.1
 | 
				
			||||||
 | 
					    mv -f "$scaledfile" "$filepath"
 | 
				
			||||||
 | 
					  else
 | 
				
			||||||
 | 
					    mv -f "$croppedfile" "$filepath"
 | 
				
			||||||
 | 
					  fi
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
keycombo(){
 | 
					keycombo(){
 | 
				
			||||||
@ -228,7 +232,7 @@ network_inspector_next_entry(){
 | 
				
			|||||||
  
 | 
					  
 | 
				
			||||||
# }
 | 
					# }
 | 
				
			||||||
network_inspector_headers_need_scrolling (){
 | 
					network_inspector_headers_need_scrolling (){
 | 
				
			||||||
  color=$(get_pixel_color 2870 1573)
 | 
					  color=$(get_pixel_color 2875 1583)
 | 
				
			||||||
  [ "$color" = "#ededf0" ]
 | 
					  [ "$color" = "#ededf0" ]
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
				
			|||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user