1040 lines
24 KiB
JSON
1040 lines
24 KiB
JSON
{
|
|
"meta": {
|
|
"instanceId": "0c99324b4b0921a9febd4737c606882881f3ca11d9b1d7e22b0dad4784eb24c7"
|
|
},
|
|
"nodes": [
|
|
{
|
|
"id": "f418ae01-01ea-4794-8903-d5709a29c735",
|
|
"name": "Get current date",
|
|
"type": "n8n-nodes-base.code",
|
|
"position": [
|
|
240,
|
|
2460
|
|
],
|
|
"parameters": {
|
|
"jsCode": "const monthNames = [\n 'January',\n 'February',\n 'March',\n 'April',\n 'May',\n 'June',\n 'July',\n 'August',\n 'September',\n 'October',\n 'November',\n 'December',\n]\n\nconst date = new Date()\nconst year = date.getFullYear()\nconst month = date.getMonth()\n\nlet currentDate = {\n month: month,\n year: year,\n text: `${monthNames[month]} '${year.toString().slice(-2)}`\n}\n\nitems[0].json.currentDate = currentDate\n\nreturn items\n\n// Month > Number e.g. July = 6, December = 11\n// Year > Text\n// Text > Playlist name\n\n// let currentDate = {\n// month: 8, \n// year: '2024',\n// text: `September '23`\n// }\n\n// items[0].json.currentDate = currentDate\n\n// return items\n\n"
|
|
},
|
|
"typeVersion": 1
|
|
},
|
|
{
|
|
"id": "855e493a-a232-45ef-8fdd-4a8225065c95",
|
|
"name": "Sticky Note3",
|
|
"type": "n8n-nodes-base.stickyNote",
|
|
"position": [
|
|
460,
|
|
2580
|
|
],
|
|
"parameters": {
|
|
"width": 1290.936043660723,
|
|
"height": 407.6508589002549,
|
|
"content": "## Check if the song is present in the database"
|
|
},
|
|
"typeVersion": 1
|
|
},
|
|
{
|
|
"id": "672ef06c-b812-41c8-8501-cde8b61a4aef",
|
|
"name": "Get last 10 liked tracks",
|
|
"type": "n8n-nodes-base.spotify",
|
|
"position": [
|
|
500,
|
|
2680
|
|
],
|
|
"parameters": {
|
|
"limit": 10,
|
|
"resource": "library"
|
|
},
|
|
"credentials": {
|
|
"spotifyOAuth2Api": {
|
|
"id": "zQrMRwwU6DLh4W77",
|
|
"name": "Spotify account"
|
|
}
|
|
},
|
|
"typeVersion": 1
|
|
},
|
|
{
|
|
"id": "da13c571-6af4-49bf-b8ff-2d54245f6d3e",
|
|
"name": "Check if track is saved",
|
|
"type": "n8n-nodes-base.nocoDb",
|
|
"position": [
|
|
940,
|
|
2780
|
|
],
|
|
"parameters": {
|
|
"table": "m0dm2y304t7vmuk",
|
|
"options": {
|
|
"where": "=(uri,eq,{{ $json.track.uri }})",
|
|
"fields": [
|
|
"uri"
|
|
]
|
|
},
|
|
"operation": "getAll",
|
|
"projectId": "pepq760y5lwt5tm",
|
|
"returnAll": true,
|
|
"authentication": "nocoDbApiToken"
|
|
},
|
|
"credentials": {
|
|
"nocoDbApiToken": {
|
|
"id": "9uSbSrDz8EL2OIL7",
|
|
"name": "NocoDB Token account"
|
|
}
|
|
},
|
|
"typeVersion": 3,
|
|
"alwaysOutputData": true
|
|
},
|
|
{
|
|
"id": "9144cda9-f18f-46d9-be2d-9fca4b192dbb",
|
|
"name": "Is not saved",
|
|
"type": "n8n-nodes-base.if",
|
|
"position": [
|
|
1160,
|
|
2780
|
|
],
|
|
"parameters": {
|
|
"options": {},
|
|
"conditions": {
|
|
"options": {
|
|
"leftValue": "",
|
|
"caseSensitive": true,
|
|
"typeValidation": "strict"
|
|
},
|
|
"combinator": "and",
|
|
"conditions": [
|
|
{
|
|
"id": "dbb259d9-e2ec-4a7b-b375-601346dc2571",
|
|
"operator": {
|
|
"type": "object",
|
|
"operation": "empty",
|
|
"singleValue": true
|
|
},
|
|
"leftValue": "={{ $json }}",
|
|
"rightValue": ""
|
|
}
|
|
]
|
|
}
|
|
},
|
|
"typeVersion": 2
|
|
},
|
|
{
|
|
"id": "66b430e2-f46c-43b2-84e7-35c85d2b4403",
|
|
"name": "Create song entry",
|
|
"type": "n8n-nodes-base.nocoDb",
|
|
"position": [
|
|
1380,
|
|
2700
|
|
],
|
|
"parameters": {
|
|
"table": "m0dm2y304t7vmuk",
|
|
"fieldsUi": {
|
|
"fieldValues": [
|
|
{
|
|
"fieldName": "uri",
|
|
"fieldValue": "={{ $('For each tracks in liked song').item.json.track.uri }}"
|
|
},
|
|
{
|
|
"fieldName": "added_at",
|
|
"fieldValue": "={{ $('For each tracks in liked song').item.json.added_at }}"
|
|
},
|
|
{
|
|
"fieldName": "playlistName",
|
|
"fieldValue": "={{ $('Get current date').item.json.currentDate.text }}"
|
|
}
|
|
]
|
|
},
|
|
"operation": "create",
|
|
"projectId": "pepq760y5lwt5tm",
|
|
"authentication": "nocoDbApiToken"
|
|
},
|
|
"credentials": {
|
|
"nocoDbApiToken": {
|
|
"id": "9uSbSrDz8EL2OIL7",
|
|
"name": "NocoDB Token account"
|
|
}
|
|
},
|
|
"typeVersion": 3
|
|
},
|
|
{
|
|
"id": "9bd883ea-2e87-45aa-b8a0-b361ba7c5d9f",
|
|
"name": "Get all user playlist",
|
|
"type": "n8n-nodes-base.spotify",
|
|
"position": [
|
|
500,
|
|
2220
|
|
],
|
|
"parameters": {
|
|
"resource": "playlist",
|
|
"operation": "getUserPlaylists",
|
|
"returnAll": true
|
|
},
|
|
"credentials": {
|
|
"spotifyOAuth2Api": {
|
|
"id": "zQrMRwwU6DLh4W77",
|
|
"name": "Spotify account"
|
|
}
|
|
},
|
|
"typeVersion": 1
|
|
},
|
|
{
|
|
"id": "3a0dad98-4571-4fb7-b366-0060d35b65fe",
|
|
"name": "Sticky Note4",
|
|
"type": "n8n-nodes-base.stickyNote",
|
|
"position": [
|
|
460,
|
|
2080
|
|
],
|
|
"parameters": {
|
|
"width": 1481.5336029736159,
|
|
"height": 416.7665808180022,
|
|
"content": "## Check if the playlist present in the database"
|
|
},
|
|
"typeVersion": 1
|
|
},
|
|
{
|
|
"id": "e793b97c-cc29-47b0-8aa7-015fa631bc37",
|
|
"name": "Get monthly playlist",
|
|
"type": "n8n-nodes-base.filter",
|
|
"position": [
|
|
720,
|
|
2220
|
|
],
|
|
"parameters": {
|
|
"options": {},
|
|
"conditions": {
|
|
"options": {
|
|
"leftValue": "",
|
|
"caseSensitive": true,
|
|
"typeValidation": "strict"
|
|
},
|
|
"combinator": "and",
|
|
"conditions": [
|
|
{
|
|
"id": "56173299-d774-4cb4-b26f-4dca294dda1d",
|
|
"operator": {
|
|
"name": "filter.operator.equals",
|
|
"type": "string",
|
|
"operation": "equals"
|
|
},
|
|
"leftValue": "={{ $json.name }}",
|
|
"rightValue": "={{ $('Get current date').item.json.currentDate.text }}"
|
|
}
|
|
]
|
|
}
|
|
},
|
|
"typeVersion": 2,
|
|
"alwaysOutputData": true
|
|
},
|
|
{
|
|
"id": "502ea9e2-7f03-4a8a-860e-90d63e42ee33",
|
|
"name": "Get playlist in DB",
|
|
"type": "n8n-nodes-base.nocoDb",
|
|
"position": [
|
|
1160,
|
|
2120
|
|
],
|
|
"parameters": {
|
|
"table": "mchan0xys9h7h7e",
|
|
"options": {
|
|
"where": "=(name,eq,{{ $('Get current date').item.json.currentDate.text }})"
|
|
},
|
|
"operation": "getAll",
|
|
"projectId": "pepq760y5lwt5tm",
|
|
"returnAll": true,
|
|
"authentication": "nocoDbApiToken"
|
|
},
|
|
"credentials": {
|
|
"nocoDbApiToken": {
|
|
"id": "9uSbSrDz8EL2OIL7",
|
|
"name": "NocoDB Token account"
|
|
}
|
|
},
|
|
"typeVersion": 3,
|
|
"alwaysOutputData": true
|
|
},
|
|
{
|
|
"id": "3d2bece0-8096-4ee1-a3b9-ae91b83f0957",
|
|
"name": "Monthly playlist exist in Spotify ?",
|
|
"type": "n8n-nodes-base.if",
|
|
"position": [
|
|
940,
|
|
2220
|
|
],
|
|
"parameters": {
|
|
"options": {},
|
|
"conditions": {
|
|
"options": {
|
|
"leftValue": "",
|
|
"caseSensitive": true,
|
|
"typeValidation": "strict"
|
|
},
|
|
"combinator": "and",
|
|
"conditions": [
|
|
{
|
|
"id": "a2d9e3e0-a906-4ed9-9e23-166f781c86b1",
|
|
"operator": {
|
|
"type": "object",
|
|
"operation": "notEmpty",
|
|
"singleValue": true
|
|
},
|
|
"leftValue": "={{ $json }}",
|
|
"rightValue": ""
|
|
}
|
|
]
|
|
}
|
|
},
|
|
"typeVersion": 2
|
|
},
|
|
{
|
|
"id": "d983b940-2f8d-4823-aaaf-d1bfa4428b41",
|
|
"name": "Playlist exist in DB ?",
|
|
"type": "n8n-nodes-base.if",
|
|
"position": [
|
|
1380,
|
|
2120
|
|
],
|
|
"parameters": {
|
|
"options": {},
|
|
"conditions": {
|
|
"options": {
|
|
"leftValue": "",
|
|
"caseSensitive": true,
|
|
"typeValidation": "strict"
|
|
},
|
|
"combinator": "and",
|
|
"conditions": [
|
|
{
|
|
"id": "9485c9d4-ecdc-4d0e-a576-c7db5787c069",
|
|
"operator": {
|
|
"type": "object",
|
|
"operation": "notEmpty",
|
|
"singleValue": true
|
|
},
|
|
"leftValue": "={{ $json }}",
|
|
"rightValue": ""
|
|
}
|
|
]
|
|
}
|
|
},
|
|
"typeVersion": 2
|
|
},
|
|
{
|
|
"id": "c694ab19-bca7-4dd4-8d10-cf8a1adab341",
|
|
"name": "Create playlist in Spotify",
|
|
"type": "n8n-nodes-base.spotify",
|
|
"position": [
|
|
1160,
|
|
2320
|
|
],
|
|
"parameters": {
|
|
"name": "={{ $('Get current date').item.json.currentDate.text }}",
|
|
"resource": "playlist",
|
|
"operation": "create",
|
|
"additionalFields": {
|
|
"description": "Monthly playlist"
|
|
}
|
|
},
|
|
"credentials": {
|
|
"spotifyOAuth2Api": {
|
|
"id": "zQrMRwwU6DLh4W77",
|
|
"name": "Spotify account"
|
|
}
|
|
},
|
|
"typeVersion": 1
|
|
},
|
|
{
|
|
"id": "dc9dc3b5-cef7-412b-b3f8-5ec011c2746d",
|
|
"name": "Create playlist in DB1",
|
|
"type": "n8n-nodes-base.nocoDb",
|
|
"position": [
|
|
1380,
|
|
2320
|
|
],
|
|
"parameters": {
|
|
"table": "mchan0xys9h7h7e",
|
|
"fieldsUi": {
|
|
"fieldValues": [
|
|
{
|
|
"fieldName": "uri",
|
|
"fieldValue": "={{ $json.uri }}"
|
|
},
|
|
{
|
|
"fieldName": "name",
|
|
"fieldValue": "={{ $json.name }}"
|
|
},
|
|
{
|
|
"fieldName": "description",
|
|
"fieldValue": "={{ $json.description}}"
|
|
}
|
|
]
|
|
},
|
|
"operation": "create",
|
|
"projectId": "pepq760y5lwt5tm",
|
|
"authentication": "nocoDbApiToken"
|
|
},
|
|
"credentials": {
|
|
"nocoDbApiToken": {
|
|
"id": "9uSbSrDz8EL2OIL7",
|
|
"name": "NocoDB Token account"
|
|
}
|
|
},
|
|
"typeVersion": 3
|
|
},
|
|
{
|
|
"id": "0356c3a4-dc20-42b0-b069-045048768939",
|
|
"name": "Create playlist in DB",
|
|
"type": "n8n-nodes-base.nocoDb",
|
|
"position": [
|
|
1600,
|
|
2200
|
|
],
|
|
"parameters": {
|
|
"table": "mchan0xys9h7h7e",
|
|
"fieldsUi": {
|
|
"fieldValues": [
|
|
{
|
|
"fieldName": "uri",
|
|
"fieldValue": "={{ $('Get monthly playlist').item.json.uri }}"
|
|
},
|
|
{
|
|
"fieldName": "name",
|
|
"fieldValue": "={{ $('Get monthly playlist').item.json.name }}"
|
|
},
|
|
{
|
|
"fieldName": "description",
|
|
"fieldValue": "={{ $('Get monthly playlist').item.json.description }}"
|
|
}
|
|
]
|
|
},
|
|
"operation": "create",
|
|
"projectId": "pepq760y5lwt5tm",
|
|
"authentication": "nocoDbApiToken"
|
|
},
|
|
"credentials": {
|
|
"nocoDbApiToken": {
|
|
"id": "9uSbSrDz8EL2OIL7",
|
|
"name": "NocoDB Token account"
|
|
}
|
|
},
|
|
"typeVersion": 3
|
|
},
|
|
{
|
|
"id": "e2c86f04-725c-4af7-b3c2-9c22e2dc64bf",
|
|
"name": "Merge",
|
|
"type": "n8n-nodes-base.merge",
|
|
"position": [
|
|
2040,
|
|
2460
|
|
],
|
|
"parameters": {
|
|
"mode": "chooseBranch",
|
|
"output": "empty"
|
|
},
|
|
"typeVersion": 2.1
|
|
},
|
|
{
|
|
"id": "036e0d74-3383-44e9-991d-7e062b982b51",
|
|
"name": "Clean op",
|
|
"type": "n8n-nodes-base.noOp",
|
|
"position": [
|
|
1820,
|
|
2200
|
|
],
|
|
"parameters": {},
|
|
"typeVersion": 1
|
|
},
|
|
{
|
|
"id": "323c9746-f713-4a3d-9af5-9579ec767fca",
|
|
"name": "Clean op2",
|
|
"type": "n8n-nodes-base.noOp",
|
|
"position": [
|
|
1600,
|
|
2800
|
|
],
|
|
"parameters": {},
|
|
"typeVersion": 1
|
|
},
|
|
{
|
|
"id": "3b0be7ca-c47b-4524-b72a-c37f25c5e4d0",
|
|
"name": "Get this month playlist in DB",
|
|
"type": "n8n-nodes-base.nocoDb",
|
|
"position": [
|
|
2260,
|
|
2460
|
|
],
|
|
"parameters": {
|
|
"table": "mchan0xys9h7h7e",
|
|
"options": {
|
|
"where": "=(name,eq,{{ $('Get current date').item.json.currentDate.text }})"
|
|
},
|
|
"operation": "getAll",
|
|
"projectId": "pepq760y5lwt5tm",
|
|
"returnAll": true,
|
|
"authentication": "nocoDbApiToken"
|
|
},
|
|
"credentials": {
|
|
"nocoDbApiToken": {
|
|
"id": "9uSbSrDz8EL2OIL7",
|
|
"name": "NocoDB Token account"
|
|
}
|
|
},
|
|
"typeVersion": 3
|
|
},
|
|
{
|
|
"id": "733077e4-c474-4c95-ba05-d0b2375475ad",
|
|
"name": "Get this month tracks in DB",
|
|
"type": "n8n-nodes-base.nocoDb",
|
|
"position": [
|
|
2480,
|
|
2460
|
|
],
|
|
"parameters": {
|
|
"table": "m0dm2y304t7vmuk",
|
|
"options": {
|
|
"where": "=(playlistName,eq,{{ $('Get current date').item.json.currentDate.text }})"
|
|
},
|
|
"operation": "getAll",
|
|
"projectId": "pepq760y5lwt5tm",
|
|
"returnAll": true,
|
|
"authentication": "nocoDbApiToken"
|
|
},
|
|
"credentials": {
|
|
"nocoDbApiToken": {
|
|
"id": "9uSbSrDz8EL2OIL7",
|
|
"name": "NocoDB Token account"
|
|
}
|
|
},
|
|
"typeVersion": 3
|
|
},
|
|
{
|
|
"id": "6c8ef70f-542d-4454-9ae6-8f4e9778beb0",
|
|
"name": "Add song to the playlist",
|
|
"type": "n8n-nodes-base.spotify",
|
|
"position": [
|
|
3580,
|
|
2460
|
|
],
|
|
"parameters": {
|
|
"id": "={{ $('Get this month playlist in DB').item.json.uri }}",
|
|
"trackID": "={{ $('For each monthly tracks in DB').item.json.uri }}",
|
|
"resource": "playlist",
|
|
"additionalFields": {}
|
|
},
|
|
"credentials": {
|
|
"spotifyOAuth2Api": {
|
|
"id": "zQrMRwwU6DLh4W77",
|
|
"name": "Spotify account"
|
|
}
|
|
},
|
|
"typeVersion": 1
|
|
},
|
|
{
|
|
"id": "034cd38d-4800-4f9c-9b67-453fdb2afa3c",
|
|
"name": "For each tracks in liked song",
|
|
"type": "n8n-nodes-base.splitInBatches",
|
|
"position": [
|
|
720,
|
|
2680
|
|
],
|
|
"parameters": {
|
|
"options": {
|
|
"reset": false
|
|
}
|
|
},
|
|
"typeVersion": 3
|
|
},
|
|
{
|
|
"id": "90ff5c0b-e842-437f-be85-a5938288c513",
|
|
"name": "For each monthly tracks in DB",
|
|
"type": "n8n-nodes-base.splitInBatches",
|
|
"position": [
|
|
2700,
|
|
2460
|
|
],
|
|
"parameters": {
|
|
"options": {}
|
|
},
|
|
"typeVersion": 3
|
|
},
|
|
{
|
|
"id": "decf36a4-fb8c-41eb-ae15-7ba36d621ad7",
|
|
"name": "Get this month tracks in Spotify",
|
|
"type": "n8n-nodes-base.spotify",
|
|
"position": [
|
|
2920,
|
|
2560
|
|
],
|
|
"parameters": {
|
|
"id": "={{ $('Get this month playlist in DB').item.json.uri }}",
|
|
"resource": "playlist",
|
|
"operation": "getTracks",
|
|
"returnAll": true
|
|
},
|
|
"credentials": {
|
|
"spotifyOAuth2Api": {
|
|
"id": "zQrMRwwU6DLh4W77",
|
|
"name": "Spotify account"
|
|
}
|
|
},
|
|
"typeVersion": 1,
|
|
"alwaysOutputData": true
|
|
},
|
|
{
|
|
"id": "d322a655-e80b-4277-87d9-93e927b2f372",
|
|
"name": "Filter1",
|
|
"type": "n8n-nodes-base.filter",
|
|
"position": [
|
|
3140,
|
|
2560
|
|
],
|
|
"parameters": {
|
|
"options": {},
|
|
"conditions": {
|
|
"options": {
|
|
"leftValue": "",
|
|
"caseSensitive": true,
|
|
"typeValidation": "strict"
|
|
},
|
|
"combinator": "and",
|
|
"conditions": [
|
|
{
|
|
"id": "a11640e1-f22a-4ce9-abff-976efc57e1d3",
|
|
"operator": {
|
|
"name": "filter.operator.equals",
|
|
"type": "string",
|
|
"operation": "equals"
|
|
},
|
|
"leftValue": "={{ $('For each monthly tracks in DB').item.json.uri }}",
|
|
"rightValue": "={{ $json.track.uri }}"
|
|
}
|
|
]
|
|
}
|
|
},
|
|
"executeOnce": false,
|
|
"typeVersion": 2,
|
|
"alwaysOutputData": true
|
|
},
|
|
{
|
|
"id": "5027f98d-b973-405f-81cf-534df794325f",
|
|
"name": "Song is not present in the playlist ?",
|
|
"type": "n8n-nodes-base.if",
|
|
"position": [
|
|
3360,
|
|
2560
|
|
],
|
|
"parameters": {
|
|
"options": {},
|
|
"conditions": {
|
|
"options": {
|
|
"leftValue": "",
|
|
"caseSensitive": true,
|
|
"typeValidation": "strict"
|
|
},
|
|
"combinator": "and",
|
|
"conditions": [
|
|
{
|
|
"id": "1beb843e-53da-48ce-9717-d7797232e4ae",
|
|
"operator": {
|
|
"type": "object",
|
|
"operation": "empty",
|
|
"singleValue": true
|
|
},
|
|
"leftValue": "={{ $json }}",
|
|
"rightValue": ""
|
|
}
|
|
]
|
|
}
|
|
},
|
|
"typeVersion": 2
|
|
},
|
|
{
|
|
"id": "cd2e3a28-24c1-47d7-ad30-c836e08ad40f",
|
|
"name": "Clean op1",
|
|
"type": "n8n-nodes-base.noOp",
|
|
"position": [
|
|
3800,
|
|
2560
|
|
],
|
|
"parameters": {},
|
|
"typeVersion": 1
|
|
},
|
|
{
|
|
"id": "56bbb0e9-3ee5-48e3-b0bf-48e8d026daa9",
|
|
"name": "Sticky Note5",
|
|
"type": "n8n-nodes-base.stickyNote",
|
|
"position": [
|
|
2220,
|
|
2400
|
|
],
|
|
"parameters": {
|
|
"width": 1733.785946789966,
|
|
"height": 351.94195615011336,
|
|
"content": "## Check if the song is in the Spotify playlist. If not, add it."
|
|
},
|
|
"typeVersion": 1
|
|
},
|
|
{
|
|
"id": "9834163b-0991-4910-bb4f-cf4557bfa0d5",
|
|
"name": "Schedule Trigger",
|
|
"type": "n8n-nodes-base.scheduleTrigger",
|
|
"position": [
|
|
20,
|
|
2460
|
|
],
|
|
"parameters": {
|
|
"rule": {
|
|
"interval": [
|
|
{
|
|
"field": "minutes"
|
|
}
|
|
]
|
|
}
|
|
},
|
|
"typeVersion": 1.2
|
|
},
|
|
{
|
|
"id": "72a3c48f-a759-4e0c-b7bb-9f69a5f4377e",
|
|
"name": "End",
|
|
"type": "n8n-nodes-base.noOp",
|
|
"position": [
|
|
4100,
|
|
2260
|
|
],
|
|
"parameters": {},
|
|
"typeVersion": 1
|
|
}
|
|
],
|
|
"pinData": {},
|
|
"connections": {
|
|
"Merge": {
|
|
"main": [
|
|
[
|
|
{
|
|
"node": "Get this month playlist in DB",
|
|
"type": "main",
|
|
"index": 0
|
|
}
|
|
]
|
|
]
|
|
},
|
|
"Filter1": {
|
|
"main": [
|
|
[
|
|
{
|
|
"node": "Song is not present in the playlist ?",
|
|
"type": "main",
|
|
"index": 0
|
|
}
|
|
]
|
|
]
|
|
},
|
|
"Clean op": {
|
|
"main": [
|
|
[
|
|
{
|
|
"node": "Merge",
|
|
"type": "main",
|
|
"index": 0
|
|
}
|
|
]
|
|
]
|
|
},
|
|
"Clean op1": {
|
|
"main": [
|
|
[
|
|
{
|
|
"node": "For each monthly tracks in DB",
|
|
"type": "main",
|
|
"index": 0
|
|
}
|
|
]
|
|
]
|
|
},
|
|
"Clean op2": {
|
|
"main": [
|
|
[
|
|
{
|
|
"node": "For each tracks in liked song",
|
|
"type": "main",
|
|
"index": 0
|
|
}
|
|
]
|
|
]
|
|
},
|
|
"Is not saved": {
|
|
"main": [
|
|
[
|
|
{
|
|
"node": "Create song entry",
|
|
"type": "main",
|
|
"index": 0
|
|
}
|
|
],
|
|
[
|
|
{
|
|
"node": "Clean op2",
|
|
"type": "main",
|
|
"index": 0
|
|
}
|
|
]
|
|
]
|
|
},
|
|
"Get current date": {
|
|
"main": [
|
|
[
|
|
{
|
|
"node": "Get all user playlist",
|
|
"type": "main",
|
|
"index": 0
|
|
},
|
|
{
|
|
"node": "Get last 10 liked tracks",
|
|
"type": "main",
|
|
"index": 0
|
|
}
|
|
]
|
|
]
|
|
},
|
|
"Schedule Trigger": {
|
|
"main": [
|
|
[
|
|
{
|
|
"node": "Get current date",
|
|
"type": "main",
|
|
"index": 0
|
|
}
|
|
]
|
|
]
|
|
},
|
|
"Create song entry": {
|
|
"main": [
|
|
[
|
|
{
|
|
"node": "Clean op2",
|
|
"type": "main",
|
|
"index": 0
|
|
}
|
|
]
|
|
]
|
|
},
|
|
"Get playlist in DB": {
|
|
"main": [
|
|
[
|
|
{
|
|
"node": "Playlist exist in DB ?",
|
|
"type": "main",
|
|
"index": 0
|
|
}
|
|
]
|
|
]
|
|
},
|
|
"Get monthly playlist": {
|
|
"main": [
|
|
[
|
|
{
|
|
"node": "Monthly playlist exist in Spotify ?",
|
|
"type": "main",
|
|
"index": 0
|
|
}
|
|
]
|
|
]
|
|
},
|
|
"Create playlist in DB": {
|
|
"main": [
|
|
[
|
|
{
|
|
"node": "Clean op",
|
|
"type": "main",
|
|
"index": 0
|
|
}
|
|
]
|
|
]
|
|
},
|
|
"Get all user playlist": {
|
|
"main": [
|
|
[
|
|
{
|
|
"node": "Get monthly playlist",
|
|
"type": "main",
|
|
"index": 0
|
|
}
|
|
]
|
|
]
|
|
},
|
|
"Create playlist in DB1": {
|
|
"main": [
|
|
[
|
|
{
|
|
"node": "Clean op",
|
|
"type": "main",
|
|
"index": 0
|
|
}
|
|
]
|
|
]
|
|
},
|
|
"Check if track is saved": {
|
|
"main": [
|
|
[
|
|
{
|
|
"node": "Is not saved",
|
|
"type": "main",
|
|
"index": 0
|
|
}
|
|
]
|
|
]
|
|
},
|
|
"Playlist exist in DB ?": {
|
|
"main": [
|
|
[
|
|
{
|
|
"node": "Clean op",
|
|
"type": "main",
|
|
"index": 0
|
|
}
|
|
],
|
|
[
|
|
{
|
|
"node": "Create playlist in DB",
|
|
"type": "main",
|
|
"index": 0
|
|
}
|
|
]
|
|
]
|
|
},
|
|
"Add song to the playlist": {
|
|
"main": [
|
|
[
|
|
{
|
|
"node": "Clean op1",
|
|
"type": "main",
|
|
"index": 0
|
|
}
|
|
]
|
|
]
|
|
},
|
|
"Get last 10 liked tracks": {
|
|
"main": [
|
|
[
|
|
{
|
|
"node": "For each tracks in liked song",
|
|
"type": "main",
|
|
"index": 0
|
|
}
|
|
]
|
|
]
|
|
},
|
|
"Create playlist in Spotify": {
|
|
"main": [
|
|
[
|
|
{
|
|
"node": "Create playlist in DB1",
|
|
"type": "main",
|
|
"index": 0
|
|
}
|
|
]
|
|
]
|
|
},
|
|
"Get this month tracks in DB": {
|
|
"main": [
|
|
[
|
|
{
|
|
"node": "For each monthly tracks in DB",
|
|
"type": "main",
|
|
"index": 0
|
|
}
|
|
]
|
|
]
|
|
},
|
|
"For each monthly tracks in DB": {
|
|
"main": [
|
|
[
|
|
{
|
|
"node": "End",
|
|
"type": "main",
|
|
"index": 0
|
|
}
|
|
],
|
|
[
|
|
{
|
|
"node": "Get this month tracks in Spotify",
|
|
"type": "main",
|
|
"index": 0
|
|
}
|
|
]
|
|
]
|
|
},
|
|
"For each tracks in liked song": {
|
|
"main": [
|
|
[
|
|
{
|
|
"node": "Merge",
|
|
"type": "main",
|
|
"index": 1
|
|
}
|
|
],
|
|
[
|
|
{
|
|
"node": "Check if track is saved",
|
|
"type": "main",
|
|
"index": 0
|
|
}
|
|
]
|
|
]
|
|
},
|
|
"Get this month playlist in DB": {
|
|
"main": [
|
|
[
|
|
{
|
|
"node": "Get this month tracks in DB",
|
|
"type": "main",
|
|
"index": 0
|
|
}
|
|
]
|
|
]
|
|
},
|
|
"Get this month tracks in Spotify": {
|
|
"main": [
|
|
[
|
|
{
|
|
"node": "Filter1",
|
|
"type": "main",
|
|
"index": 0
|
|
}
|
|
]
|
|
]
|
|
},
|
|
"Monthly playlist exist in Spotify ?": {
|
|
"main": [
|
|
[
|
|
{
|
|
"node": "Get playlist in DB",
|
|
"type": "main",
|
|
"index": 0
|
|
}
|
|
],
|
|
[
|
|
{
|
|
"node": "Create playlist in Spotify",
|
|
"type": "main",
|
|
"index": 0
|
|
}
|
|
]
|
|
]
|
|
},
|
|
"Song is not present in the playlist ?": {
|
|
"main": [
|
|
[
|
|
{
|
|
"node": "Add song to the playlist",
|
|
"type": "main",
|
|
"index": 0
|
|
}
|
|
],
|
|
[
|
|
{
|
|
"node": "Clean op1",
|
|
"type": "main",
|
|
"index": 0
|
|
}
|
|
]
|
|
]
|
|
}
|
|
}
|
|
} |