• 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:

    Interview with Kat Woods: decision-making about having kids

    Realizing what you don't want The post Interview with Kat Woods: decision-making about having kids appeared first on Otherwise.

    via Otherwise July 5, 2022

    Decision theory and dynamic inconsistency

    Here is my current take on decision theory: When making a decision after observing X, we should condition (or causally intervene) on statements like “My decision algorithm outputs Y after observing X.” Updating seems like a description of something you do…

    via The sideways view July 3, 2022

    10x (engineer, context) pairs

    Your actual output depends on a lot more than just how quickly you finish a given programming task. Everything besides the literal coding depends deeply on the way you interact with the organization around you.

    via benkuhn.net June 9, 2022

    more     (via openring)


  • Posts
  • RSS
  • ◂◂RSS
  • Contact