feat(youtube): add new video by search trigger

This commit is contained in:
Rıdvan Akca
2023-10-17 14:36:14 +03:00
parent fb1f520096
commit 9f5ea80731
4 changed files with 52 additions and 2 deletions

View File

@@ -1,3 +1,4 @@
import newVideoInChannel from './new-video-in-channel';
import newVideoBySearch from './new-video-by-search';
export default [newVideoInChannel];
export default [newVideoBySearch, newVideoInChannel];

View File

@@ -0,0 +1,47 @@
import defineTrigger from '../../../../helpers/define-trigger';
export default defineTrigger({
name: 'New video by search',
key: 'newVideoBySearch',
description:
'Triggers when a new video is uploaded that matches a specific search string.',
arguments: [
{
label: 'Query',
key: 'query',
type: 'string' as const,
required: true,
description: 'Search for videos that match this query.',
variables: true,
},
],
async run($) {
const query = $.step.parameters.query;
const params = {
pageToken: undefined as unknown as string,
part: 'snippet',
q: query,
maxResults: 50,
order: 'date',
type: 'video',
};
do {
const { data } = await $.http.get('/v3/search', { params });
params.pageToken = data.nextPageToken;
if (data?.items?.length) {
for (const item of data.items) {
$.pushTriggerItem({
raw: item,
meta: {
internalId: item.etag,
},
});
}
}
} while (params.pageToken);
},
});

View File

@@ -7,7 +7,7 @@ export default defineTrigger({
'Triggers when a new video is published to a specific Youtube channel.',
arguments: [
{
label: 'Channel ID',
label: 'Channel',
key: 'channelId',
type: 'string' as const,
required: true,

View File

@@ -3,6 +3,8 @@ favicon: /favicons/youtube.svg
items:
- name: New video in channel
desc: Triggers when a new video is published to a specific Youtube channel.
- name: New video by search
desc: Triggers when a new video is uploaded that matches a specific search string.
---
<script setup>