Releases: chriskyfung/AutoFetcher-IG-Stories-to-GDrive
lib-v10
What's Changed
🐛 Bug Fixes
-
Standardized log datetime format (#80)
- Enhanced the
insertNewLog
function inlogger.js
to receive a JavaScript
Date object for thedatetime
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 theUtilities.formatDate()
method. - Adjusted the
fetcher.js
file to pass the date and time as aDate
object
when calling theinsertNewLog
function.
- Enhanced the
-
Resolved the "No item with the given ID could be found" error (#112)
- Enclosed the
DriveApp.getFileById
method call in atry-catch
block in
logger.js
. - Included error logging in the
catch
block if an exception is thrown.
- Enclosed the
⬆ 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)
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 content0xf4
: 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 thepackage.json
file - Unnested if-else statements inside the
fetch()
function infetcher.js
- Modularize the fetch() function with a new utility function called
getFileDetails()
located in theutils.js
file - Renamed the
html
parameter todata
inside thetryGetStories()
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 inpackage.json
to run jest with a custom configuration file injest.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
toLICENSE.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 thegetFileDetails()
function inutils.js
, in the test folder
Pull Requests
- Enhancements to Documentation and Jekyll Setup by @chriskyfung in #92
- Fix #84 Logging blank filename by @chriskyfung in #93
- Development version for V9 by @chriskyfung in #87
Full Changelog: lib-v8...lib-v9
Library V8 (build230216a)
What's Changed
- ✨ Add destination folder feature by @hidehiro98 in #74
New Contributors
- @hidehiro98 made their first contribution in #74
Full Changelog: lib-v7...lib-v8
Library V7 (build230214a)
What's Changed
- Update devDependenices by @chriskyfung in #64
- Bump http-cache-semantics from 4.1.0 to 4.1.1 by @dependabot in #72
- 🐛 Bug Fixes for #68 and #70 by @chriskyfung in #73
Full Changelog: lib-v6...lib-v7
Library V6 (build221013a)
What's Changed
- 🐛 Fix #45 Add
x-instagram-ajax
to request header by @chriskyfung in #59
Full Changelog: lib-v5...lib-v6
Library V5 (build220904a)
What's Changed
🐛 Bug Fixes
- Fix #53 duplicate log entries by @chriskyfung in #54
📦 Packaging Updates
- Enabled
singleQuote
setting in Prettier
📝 Documentation
- Updated Google Sheet links in README.md by @chriskyfung
Full Changelog: lib-v4...lib-v5
Library V4 (build220823a)
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
andx-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)
What's Changed
- Bump url-parse from 1.5.3 to 1.5.7 by @dependabot in #36
New Contributors
- @dependabot made their first contribution in #36
Full Changelog: lib-v2...lib-v3
Library V2 (build2112a)
✨ New Features
-
Added new features to Log Sheet by @chriskyfung in #22
-
Save the filename of downloaded files in Column E in the "Logs" sheet
-
Show the thumbnail preview and open the file on Drive by hovering and clicking on a hyperlinked filename.
-
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.
-
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.
-
Go to Logs sheet, add Saved Filename and Select to the cells E1 and F1 as the column headings, respectively.
-
Select Insert > Drawing from the main menu.
-
In the Drawing dialog, create a button-like shape with adding the text Delete Selected on it. Then, click Save and Close button.
-
Move and scale the button drawing it to appropriate size and position.
-
Select Extensions > Apps Script from the main menu to open the Apps Script Editor.
-
Double-click IGStoriesToGDrive under the Libraries section in the left pane.
-
Change the Version to 2 from the dropdown (as the picture below). Then, click Save.
-
Add the following code to your Google Sheet's Apps Script:
function deleteSelected() { const IGSF = IGStoriesToGDrive.getInstance(); IGSF.deleteSelected(); }
-
Click the Save project icon to save the change.
-
Go back to your Google Sheet file, right-click the button drawing and then select the three-dots ( ⋮ ) icon > Assign script.
-
Enter
deleteSelected
(as the picture below). Then, click OK to close the dialog. -
Test the script by clicking the Delete Selected button. You should see a prompt like this:
-
Click No to cancel running the script.
-
Library V1 (build2111a)
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
- Google sheet integration by @chriskyfung in #21
🐛 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()
andsetTestStatusBadge()
functions insrc/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