Skip to content

Releases: chriskyfung/AutoFetcher-IG-Stories-to-GDrive

lib-v10

15 Mar 06:14
lib-v10
793d89e
Compare
Choose a tag to compare

What's Changed

🐛 Bug Fixes

  • Standardized log datetime format (#80)

    • Enhanced the insertNewLog function in logger.js to receive a JavaScript
      Date object for the datetime parameter instead of a string.
    • Retrieve the time zone from the spreadsheet's locate setting.
    • Transformed the datetime parameter to a datetime string in the format of
      "yyyy-MM-dd HH:mm:ss" using the Utilities.formatDate() method.
    • Adjusted the fetcher.js file to pass the date and time as a Date object
      when calling the insertNewLog function.
  • Resolved the "No item with the given ID could be found" error (#112)

    • Enclosed the DriveApp.getFileById method call in a try-catch block in
      logger.js.
    • Included error logging in the catch block if an exception is thrown.

⬆ Dependencies

  • Updated:
    • jekyll (3.9.0 → 3.9.5)
    • nokogiri (1.16.0 → 1.16.2) in /docs (#96)
    • apps-script-oauth2 (72d4dbc → 6ae908a) (#101)
    • eslint-plugin-googleappsscript (1.0.4 → 1.0.5) (#106)
    • @babel/preset-env (7.23.7 → 7.24.0) (#107)
    • @rollup/plugin-multi-entry (6.0.0 → 6.0.1) (#108)
    • eslint (8.34.0 → 8.57.0) (#109)
    • rollup (3.15.0 → 4.12.0) (#110)

📝 Documentation

  • Corrected the permalink URLs of "Release Notes" and "Advanced Configurations"
    pages.

  • Updated API endpoint URLs for status badges.

  • Enhanced formatting of H2 headers in release notes:

    • Eliminated build numbers from H2 headers.
    • Enclosed release dates with parentheses.
  • Refined and styled the changelog.

💚 CI/CD Integration

  • Implemented automated version updates via Dependabot.
  • Upgraded github/codeql-action (1 → 3) and actions/checkout (2 → 4) in
    codeql-analysis.yml

Full Changelog: lib-v9...lib-v10

Library V9 (build240205a)

05 Feb 14:25
lib-v9
0791a81
Compare
Choose a tag to compare

What's Changed

✨ New Features

  • Add custom menu and menu items to Google Sheets

  • Allow moving downloaded files to other Google Drive folder via Google Sheet

  • Allow logging HTTP status code and headers from the Instagram API response

  • Add new error codes to identify if the API request returns response in HTML instead of JSON:

    • 0xf3: Include not-logged-in in the HTML content
    • 0xf4: Other HTML responses
  • Add the dist/instance/code.js file for developers to deploy a Google Sheet project with a standalone script

🐛 Bug Fixes

  • Fix TypeError: Cannot read properties of undefined (reading 'split') #82. Validate the object type before using the String.Split method
  • Fix issue in deleting row without file name #90. Skip the row with missing data when deleting selected log entries
  • Fix blank spots in "Saved Filename" column #84. Skip log entry when download fails
  • Fix Error: Address unavailable:... (code: 0xf1) #86. Continue to process the next Instagram user instead of terminating the script execution immediately

♻ Refactors

  • Use npx clasp to simplify the npm scripts in the package.json file
  • Unnested if-else statements inside the fetch() function in fetcher.js
  • Modularize the fetch() function with a new utility function called getFileDetails() located in the utils.js file
  • Renamed the html parameter to data inside the tryGetStories() function

📦 Packaging Updates

  • Add jest@29.7.0, @babel/preset-env@7.23.7, babel-polyfill@6.26.0, babel-jest@29.7.0 as development dependencies for developing unit tests
  • Add Jest extension setting for VS Code
  • Add npm test script in package.json to run jest with a custom configuration file in jest.config.js
  • Exclude unit tests from being bundled by rollup
  • Update to print the copyright notice with the current year when being bundle by rollup
  • Pin Jekyll version to 3.9.3 and add webrick gem to the docs/_config.yml file
  • Add Front Matter CMS for VS Code to improve Jekyll documentation editing

📝 Documentation

  • Rename the LICENSE.md to LICENSE.txt file
  • Replace SVG badges with dynamic JSON badges in the README and docs/index.md files #95
  • Reword the README file to make more concise and readable
  • Split the sections for Advanced Configurations and Release Notes to new web pages
  • Style and reword the Jekyll site files in the docs directory to make GitHub project pages more appealing, informative and readable
  • Add new screenshots and demo video to the GitHub project pages' landing page
  • Apply the Google Documentation Guide recommendation to limit lines to 80 characters where possible in the README file for helping newcomers to configure the clasp
  • Update the CHANGELOG.md file

🧪 Unit Test

  • Add the utils.test.js file, which contains a test suite for the getFileDetails() function in utils.js, in the test folder

Pull Requests

Full Changelog: lib-v8...lib-v9

Library V8 (build230216a)

16 Feb 06:49
e2ba795
Compare
Choose a tag to compare

What's Changed

New Contributors

Full Changelog: lib-v7...lib-v8

Library V7 (build230214a)

14 Feb 15:37
05e8c6f
Compare
Choose a tag to compare

What's Changed

Full Changelog: lib-v6...lib-v7

Library V6 (build221013a)

12 Oct 16:18
b39ef14
Compare
Choose a tag to compare

What's Changed

Full Changelog: lib-v5...lib-v6

Library V5 (build220904a)

03 Sep 18:41
Compare
Choose a tag to compare

What's Changed

🐛 Bug Fixes

📦 Packaging Updates

  • Enabled singleQuote setting in Prettier

📝 Documentation

Full Changelog: lib-v4...lib-v5

Library V4 (build220823a)

23 Aug 09:40
Compare
Choose a tag to compare

Breaking Change

⚠ The previous builds no longer work from Aug 16,2022 due to Instagram code changes. ASBD identifier and CSRF token are now required for authentication to access the Instagram endpoint.
💥 Please update to Build220823a and make a copy of the new Google Sheet.

What's Changed

  • Add x-asbd-id and x-csrftoken to request header
  • Update readme and docs files
  • Bump terser from 5.14.1 to 5.14.2 by @dependabot in #44

Full Changelog: lib-v3...lib-v4

Library V3 (build2206b)

05 Jun 09:57
Compare
Choose a tag to compare

What's Changed

New Contributors

Full Changelog: lib-v2...lib-v3

Library V2 (build2112a)

08 Dec 00:45
Compare
Choose a tag to compare

✨ New Features

  • Added new features to Log Sheet by @chriskyfung in #22

    1. Save the filename of downloaded files in Column E in the "Logs" sheet

    2. Show the thumbnail preview and open the file on Drive by hovering and clicking on a hyperlinked filename.

      Thumbnail preview shown while hovering a saved filename in Column E on log sheet page

    3. Delete multiple items and their corresponding files from Drive by selecting the checkboxes in Column F and then clicking on "Delete Selected" of log sheet page.

      Delete selected items from spreadsheet

Full Changelog: lib-v1...lib-v2


🛟 Update Guide

How To Add The New Features To Your Existing Google Sheet File

To use the new version in your existing Google Sheet file, you need to update it by:

  • making a new copy of our Google Sheet template, or

  • following the below steps to manually update your Google Sheet file.

    1. Go to Logs sheet, add Saved Filename and Select to the cells E1 and F1 as the column headings, respectively.

    2. Select Insert > Drawing from the main menu.

    3. In the Drawing dialog, create a button-like shape with adding the text Delete Selected on it. Then, click Save and Close button.

    4. Move and scale the button drawing it to appropriate size and position.

    5. Select Extensions > Apps Script from the main menu to open the Apps Script Editor.

    6. Double-click IGStoriesToGDrive under the Libraries section in the left pane.

    7. Change the Version to 2 from the dropdown (as the picture below). Then, click Save.

      IGSToriesToGDrive library settings

    8. Add the following code to your Google Sheet's Apps Script:

      function deleteSelected() {
        const IGSF = IGStoriesToGDrive.getInstance();
        IGSF.deleteSelected();
      }
    9. Click the Save project icon to save the change.

    10. Go back to your Google Sheet file, right-click the button drawing and then select the three-dots ( ) icon > Assign script.

    11. Enter deleteSelected (as the picture below). Then, click OK to close the dialog.

      What script do you want to assign?

    12. Test the script by clicking the Delete Selected button. You should see a prompt like this:

      Are you sure you want to delete these 0 items and their files from your Drive?

    13. Click No to cancel running the script.

Library V1 (build2111a)

11 Nov 14:26
0a99cf4
Compare
Choose a tag to compare

Major Upgrade ✨ Integrate with Google Sheet

Integration of Google Sheet was made to provide a user-friendly GUI for configurations and logging. The new version allows you to set up your subscriptions and user settings easily and systematically, rather than hard coding them in the Apps Script. Logs will also store in the same Google Sheet file instead of saving separately in multiple Google Doc files.

What's Changed

✨ New Feature

🐛 Bug Fixes

  • Fixed errors in reading logs with extra columns
  • Added a try-catch block to handle null exceptions of igParams

⚡ Enhancements

  • Used ES6 modules to import and export functions among .js files
  • Refactored the createBadges(), setTestDataBadge() and setTestStatusBadge() functions in src/badge.js

📦 Packaging Update

  • 🧰 Used Clasp (Command Line Apps Script Projects) by @chriskyfung in #19
  • Used ESlint, Prettier, and Rollup in the development workflow

Full Changelog: build2109a...lib-v1