From 4d54a608a6f24bbd5b249d7a23e7b2111252a360 Mon Sep 17 00:00:00 2001 From: Ali BARIN Date: Sun, 23 Oct 2022 20:46:38 +0200 Subject: [PATCH 1/2] feat(flickr): add new photos trigger --- .../apps/flickr/triggers/new-photos/index.ts | 24 +++++++ .../flickr/triggers/new-photos/new-photos.ts | 64 +++++++++++++++++++ 2 files changed, 88 insertions(+) create mode 100644 packages/backend/src/apps/flickr/triggers/new-photos/index.ts create mode 100644 packages/backend/src/apps/flickr/triggers/new-photos/new-photos.ts diff --git a/packages/backend/src/apps/flickr/triggers/new-photos/index.ts b/packages/backend/src/apps/flickr/triggers/new-photos/index.ts new file mode 100644 index 00000000..7a7e6e94 --- /dev/null +++ b/packages/backend/src/apps/flickr/triggers/new-photos/index.ts @@ -0,0 +1,24 @@ +import defineTrigger from '../../../../helpers/define-trigger'; +import newPhotos from './new-photos'; + +export default defineTrigger({ + name: 'New photo', + pollInterval: 15, + key: 'newPhoto', + description: 'Triggers when you add a new photo.', + dedupeStrategy: 'unique', + substeps: [ + { + key: 'chooseConnection', + name: 'Choose connection' + }, + { + key: 'testStep', + name: 'Test trigger' + } + ], + + async run($) { + await newPhotos($); + }, +}); diff --git a/packages/backend/src/apps/flickr/triggers/new-photos/new-photos.ts b/packages/backend/src/apps/flickr/triggers/new-photos/new-photos.ts new file mode 100644 index 00000000..3f8850ef --- /dev/null +++ b/packages/backend/src/apps/flickr/triggers/new-photos/new-photos.ts @@ -0,0 +1,64 @@ +import { IGlobalVariable } from '@automatisch/types'; + +const extraFields = [ + 'description', + 'license', + 'date_upload', + 'date_taken', + 'owner_name', + 'icon_server', + 'original_format', + 'last_update', + 'geo', + 'tags', + 'machine_tags', + 'o_dims', + 'views', + 'media', + 'path_alias', + 'url_sq', + 'url_t', + 'url_s', + 'url_q', + 'url_m', + 'url_n', + 'url_z', + 'url_c', + 'url_l', + 'url_o', +].join(','); + +const newPhotos = async ($: IGlobalVariable) => { + let page = 1; + let pages = 1; + + do { + const params = { + page, + per_page: 500, + user_id: $.auth.data.userId, + extras: extraFields, + method: 'flickr.photos.search', + format: 'json', + nojsoncallback: 1, + }; + const response = await $.http.get('/rest', { params }); + const photos = response.data.photos; + page = photos.page + 1; + pages = photos.pages; + + for (const photo of photos.photo) { + if ($.flow.isAlreadyProcessed(photo.id) && !$.execution.testRun) + return; + + $.pushTriggerItem({ + raw: photo, + meta: { + internalId: photo.id as string + } + }) + } + } while (page <= pages && !$.execution.testRun); +}; + +export default newPhotos; From aa8d1d984c43eb62a68e6804241fd021ea5819c4 Mon Sep 17 00:00:00 2001 From: Ali BARIN Date: Sun, 23 Oct 2022 21:25:33 +0200 Subject: [PATCH 2/2] fix(github): iterate over next pages in actual run --- .../src/apps/github/triggers/new-watchers/new-watchers.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/backend/src/apps/github/triggers/new-watchers/new-watchers.ts b/packages/backend/src/apps/github/triggers/new-watchers/new-watchers.ts index fb4684b3..69753514 100644 --- a/packages/backend/src/apps/github/triggers/new-watchers/new-watchers.ts +++ b/packages/backend/src/apps/github/triggers/new-watchers/new-watchers.ts @@ -47,7 +47,7 @@ const newWatchers = async ($: IGlobalVariable) => { $.pushTriggerItem(dataItem); } } - } while (pathname && !$.execution.testRun === false); + } while (pathname && !$.execution.testRun); }; export default newWatchers;