• Posts
  • RSS
  • ◂◂RSS
  • Contact

  • Auto-Downloder Chrome Extension

    September 18th, 2021
    comments, tech
    Let's say you want Chrome to automatically download pieces of pages, such as Facebook comments. How could you do it? I recently wanted to do this and couldn't find docs, so here's what I did.

    1. Make a folder somewhere for a browser extension.

    2. In that folder, make manifest.json with contents like:

      {
        "name": "Downloader",
        "description": "Downloads stuff",
        "version": "1.0",
        "manifest_version": 3,
        "permissions": [
          "activeTab",
          "downloads"
        ],
        "background": {
          "service_worker": "background.js"
        },
        "content_scripts": [{
          "matches": [
            "https://example.com/path/*",
          ],
          "js": ["content_script.js"]
        }]
      }
      
    3. In content_script.js put:

      // This file extracts what you want from the page
      // and asks the background script to save it.
      
      // You write the code to extract what you want.
      const yourStringToSave =
        yourFunctionToExtractFromPage();
      
      chrome.runtime.sendMessage(
          /* extension id not needed */ undefined,
          [fileNameToUse,
           yourStringToSave]);
      
    4. In background.js put:

      // This file receives messages from the content
      // script and puts them in your Dowloads folder.
      
      function makeDataUrl(body) {
        // We use a data: url because Chrome has
        // trouble with object URLs in Incognito.
        return "data:application/json;base64," +
          btoa(unescape(encodeURIComponent(body)));
      }
      
      chrome.runtime.onMessage.addListener(
        function(message) {
          const fname = message[0];
          const body = message[1];
      
          chrome.downloads.download({
            conflictAction: "overwrite",
            filename: fname,
            url: makeDataUrl(body),
          });
        });
      
    5. Visit chrome://extensions

    6. Enable Developer Mode

    7. Click the "Load unpacked" and select the extension directory

    8. If you need it in Incognito, click "Details" on the extension card and then enable "Allow in Incognito".

    Example code: github.

    (And, yes, this is how Facebook comments are back.)

    Comment via: facebook, lesswrong

    Recent posts on blogs I like:

    How much time and money does an additional child take?

    Some things scale, others don't. The post How much time and money does an additional child take? appeared first on Otherwise.

    via Otherwise March 19, 2023

    What does Bing Chat tell us about AI risk?

    Early signs of catastrophic risk? Yes and no.

    via Cold Takes February 28, 2023

    Why Neighborhoods Should Have Speed Bumps

    I have several reasons I think why neighborhoods should have speed bumps. First, speed bumps are very useful to stop cars from hitting people in the streets. Second, when construction workers installed speed bumps on the street in front of our house it was v…

    via Lily Wise's Blog Posts February 27, 2023

    more     (via openring)


  • Posts
  • RSS
  • ◂◂RSS
  • Contact