ignore isolate dir
ci / build (push) Successful in 2m2s
Details
ci / build (push) Successful in 2m2s
Details
This commit is contained in:
parent
9a3f9cf6c0
commit
effba4d1d2
|
@ -25,27 +25,6 @@ jobs:
|
|||
username: ${{ secrets.DOCKER_USERNAME }}
|
||||
password: ${{ secrets.DOCKER_PASSWORD }}
|
||||
|
||||
# - uses: mr-smithers-excellent/docker-build-push@v6
|
||||
# name: Build futureporn/scout-manager
|
||||
# with:
|
||||
# image: futureporn/scout-manager
|
||||
# tags: latest
|
||||
# target: manager
|
||||
# registry: gitea.futureporn.net
|
||||
# dockerfile: d.scout.dockerfile
|
||||
# username: ${{ secrets.DOCKER_USERNAME }}
|
||||
# password: ${{ secrets.DOCKER_PASSWORD }}
|
||||
|
||||
# - uses: mr-smithers-excellent/docker-build-push@v6
|
||||
# name: Build futureporn/link2cid
|
||||
# with:
|
||||
# image: futureporn/link2cid
|
||||
# tags: latest
|
||||
# registry: gitea.futureporn.net
|
||||
# dockerfile: d.link2cid.dockerfile
|
||||
# username: ${{ secrets.DOCKER_USERNAME }}
|
||||
# password: ${{ secrets.DOCKER_PASSWORD }}
|
||||
|
||||
- uses: mr-smithers-excellent/docker-build-push@v6
|
||||
name: Build futureporn/next
|
||||
with:
|
||||
|
|
|
@ -1,5 +1,6 @@
|
|||
**/.env*
|
||||
*~
|
||||
packages/**/isolate/
|
||||
|
||||
charts/**/charts
|
||||
.envrc
|
||||
|
|
|
@ -1,15 +0,0 @@
|
|||
---
|
||||
apiVersion: v1
|
||||
kind: Pod
|
||||
metadata:
|
||||
name: boop
|
||||
namespace: futureporn
|
||||
labels:
|
||||
app.kubernetes.io/name: boop
|
||||
spec:
|
||||
containers:
|
||||
- name: boop
|
||||
image: fp/boop
|
||||
resources: {}
|
||||
restartPolicy: OnFailure
|
||||
|
|
@ -37,5 +37,6 @@ RUN pnpm deploy --filter=temporal-worker --prod /prod/temporal-worker
|
|||
|
||||
FROM base as worker
|
||||
COPY --from=build /prod/temporal-worker .
|
||||
RUN ls -la ./
|
||||
ENTRYPOINT ["pnpm", "start"]
|
||||
|
||||
|
|
|
@ -9,5 +9,8 @@
|
|||
"keywords": [],
|
||||
"author": "@CJ_Clippy",
|
||||
"license": "Unlicense",
|
||||
"packageManager": "pnpm@9.5.0"
|
||||
"packageManager": "pnpm@9.5.0",
|
||||
"dependencies": {
|
||||
"types": "^0.1.1"
|
||||
}
|
||||
}
|
||||
|
|
|
@ -15,40 +15,6 @@ importers:
|
|||
specifier: ^7.0.1
|
||||
version: 7.5.0
|
||||
|
||||
../..: {}
|
||||
|
||||
../boop: {}
|
||||
|
||||
../bot: {}
|
||||
|
||||
../capture: {}
|
||||
|
||||
../image: {}
|
||||
|
||||
../infra: {}
|
||||
|
||||
../next: {}
|
||||
|
||||
../scout: {}
|
||||
|
||||
../storage: {}
|
||||
|
||||
../strapi: {}
|
||||
|
||||
../taco: {}
|
||||
|
||||
../temporal-worker: {}
|
||||
|
||||
../temporal-workflows: {}
|
||||
|
||||
../types: {}
|
||||
|
||||
../uppy: {}
|
||||
|
||||
../utils: {}
|
||||
|
||||
../video: {}
|
||||
|
||||
packages:
|
||||
|
||||
'@aws-crypto/crc32@5.2.0':
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
import { bell } from 'taco'
|
||||
import { IPagination } from 'types'
|
||||
import { bell } from '@futureporn/taco'
|
||||
import { IPagination } from '@futureporn/types'
|
||||
|
||||
function main() {
|
||||
const page: IPagination = {
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
{
|
||||
"name": "boop",
|
||||
"name": "@futureporn/boop",
|
||||
"type": "module",
|
||||
"version": "1.0.1",
|
||||
"description": "",
|
||||
|
@ -10,8 +10,8 @@
|
|||
"build": "tsc --build"
|
||||
},
|
||||
"dependencies": {
|
||||
"taco": "workspace:*",
|
||||
"types": "workspace:*"
|
||||
"@futureporn/taco": "workspace:*",
|
||||
"@futureporn/types": "workspace:*"
|
||||
},
|
||||
"keywords": [],
|
||||
"author": "",
|
||||
|
|
|
@ -8,10 +8,10 @@ importers:
|
|||
|
||||
.:
|
||||
dependencies:
|
||||
taco:
|
||||
'@futureporn/taco':
|
||||
specifier: workspace:*
|
||||
version: link:../taco
|
||||
types:
|
||||
'@futureporn/types':
|
||||
specifier: workspace:*
|
||||
version: link:../types
|
||||
devDependencies:
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
import sharp from 'sharp';
|
||||
import Prevvy from 'prevvy';
|
||||
import path from 'path';
|
||||
import { getTmpFile } from 'utils';
|
||||
import { getTmpFile } from '@futureporn/utils';
|
||||
|
||||
export async function getProminentColor(imageFile: string): Promise<string> {
|
||||
const { dominant } = await sharp(imageFile).stats();
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
{
|
||||
"name": "image",
|
||||
"name": "@futureporn/image",
|
||||
"type": "module",
|
||||
"version": "1.0.0",
|
||||
"description": "",
|
||||
|
@ -15,7 +15,7 @@
|
|||
"@types/mocha": "^10.0.7",
|
||||
"prevvy": "^7.0.1",
|
||||
"sharp": "^0.33.4",
|
||||
"utils": "workspace:^"
|
||||
"@futureporn/utils": "workspace:^"
|
||||
},
|
||||
"devDependencies": {
|
||||
"chai": "^5.1.1",
|
||||
|
|
|
@ -8,6 +8,9 @@ importers:
|
|||
|
||||
.:
|
||||
dependencies:
|
||||
'@futureporn/utils':
|
||||
specifier: workspace:^
|
||||
version: link:../utils
|
||||
'@types/chai':
|
||||
specifier: ^4.3.16
|
||||
version: 4.3.16
|
||||
|
@ -20,9 +23,6 @@ importers:
|
|||
sharp:
|
||||
specifier: ^0.33.4
|
||||
version: 0.33.4
|
||||
utils:
|
||||
specifier: workspace:^
|
||||
version: link:../utils
|
||||
devDependencies:
|
||||
chai:
|
||||
specifier: ^5.1.1
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
import { getAllStreamsForVtuber, getStreamCountForVtuber } from "@/app/lib/streams";
|
||||
import { getVodsForVtuber } from "@/app/lib/vods";
|
||||
import { IVtuber } from "types";
|
||||
import { IVtuber } from "@futureporn/types";
|
||||
|
||||
export interface IArchiveProgressProps {
|
||||
vtuber: IVtuber;
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
import { IStream } from "types";
|
||||
import { IStream } from "@futureporn/types";
|
||||
import Link from "next/link"
|
||||
import { FontAwesomeIcon } from "@fortawesome/react-fontawesome";
|
||||
import { faCalendar } from "@fortawesome/free-solid-svg-icons";
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
'use client';
|
||||
|
||||
import { IStream } from "types";
|
||||
import { IStream } from "@futureporn/types";
|
||||
// import NotFound from "app/streams/[cuid]/not-found";
|
||||
import { IVod } from "@/app/lib/vods";
|
||||
import Link from "next/link";
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
import { IStream } from "types";
|
||||
import { IStream } from "@futureporn/types";
|
||||
import NotFound from "@/app/vt/[slug]/not-found";
|
||||
import { LocalizedDate } from "./localized-date";
|
||||
import Link from "next/link";
|
||||
|
|
|
@ -1,9 +1,8 @@
|
|||
import React from 'react'
|
||||
import Link from 'next/link';
|
||||
import { IVtuber } from 'types';
|
||||
import { IVtuber, IStream } from '@futureporn/types';
|
||||
import { notFound } from 'next/navigation';
|
||||
import { getAllStreams } from '@/app/lib/streams';
|
||||
import { IStream } from 'types';
|
||||
import { StreamSummary } from '@/app/components/stream';
|
||||
|
||||
interface IStreamsListProps {
|
||||
|
|
|
@ -20,7 +20,7 @@ import { FontAwesomeIcon } from '@fortawesome/react-fontawesome'
|
|||
import { faSpinner } from '@fortawesome/free-solid-svg-icons'
|
||||
|
||||
import { fetchStreamData } from '@/app/lib/streams'
|
||||
import { IStream } from 'types'
|
||||
import { IStream } from '@futureporn/types'
|
||||
|
||||
const queryClient = new QueryClient()
|
||||
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
import React from 'react';
|
||||
import { IToy, IToysResponse } from '@/app/lib/toys';
|
||||
import { IVtuber } from 'types';
|
||||
import { IVtuber } from '@futureporn/types';
|
||||
import Link from 'next/link';
|
||||
import Image from "next/legacy/image";
|
||||
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
'use client';
|
||||
|
||||
|
||||
import { IVtuber } from "types";
|
||||
import { IVtuber } from "@futureporn/types";
|
||||
import { useSearchParams } from 'next/navigation';
|
||||
import React from 'react';
|
||||
import AwsS3 from '@uppy/aws-s3';
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
import Link from "next/link";
|
||||
import { getSafeDate } from '@/app/lib/dates';
|
||||
import { IVtuber } from 'types';
|
||||
import { IVtuber } from '@futureporn/types';
|
||||
import Image from "next/legacy/image"
|
||||
import { LocalizedDate } from '@/app/components/localized-date'
|
||||
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
import React from 'react'
|
||||
import Link from 'next/link';
|
||||
import VodCard from './vod-card';
|
||||
import { IVtuber } from 'types';
|
||||
import { IVtuber } from '@futureporn/types';
|
||||
import { IVod } from '@/app/lib/vods';
|
||||
import { getVodTitle } from './vod-page';
|
||||
import { notFound } from 'next/navigation';
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
import Link from "next/link";
|
||||
import type { IVtuber } from 'types';
|
||||
import type { IVtuber } from '@futureporn/types';
|
||||
import { getVodsForVtuber } from "@/app/lib/vods";
|
||||
import Image from "next/legacy/image"
|
||||
import NotFound from "@/app/vt/[slug]/not-found";
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
import { IMeta } from "types";
|
||||
import { IMeta } from "@futureporn/types";
|
||||
|
||||
export interface IB2File {
|
||||
id: number;
|
||||
|
|
|
@ -2,8 +2,8 @@
|
|||
import { siteUrl, strapiUrl } from './constants';
|
||||
import { getSafeDate } from './dates';
|
||||
import qs from 'qs';
|
||||
import { IStream } from 'types';
|
||||
import { IStreamsResponse } from 'types';
|
||||
import { IStream } from '@futureporn/types';
|
||||
import { IStreamsResponse } from '@futureporn/types';
|
||||
|
||||
|
||||
|
||||
|
|
|
@ -11,7 +11,7 @@ import { strapiUrl } from './constants'
|
|||
import { ITagResponse, IToyTagResponse } from './tags';
|
||||
import { IVod, IVodResponse } from './vods';
|
||||
import { IAuthData } from '@/app/components/auth';
|
||||
import { IMeta } from 'types';
|
||||
import { IMeta } from '@futureporn/types';
|
||||
|
||||
export interface ITagVodRelation {
|
||||
id: number;
|
||||
|
|
|
@ -5,7 +5,7 @@ import slugify from 'slugify';
|
|||
import { IToy } from './toys';
|
||||
import { IAuthData } from '@/app/components/auth';
|
||||
import qs from 'qs';
|
||||
import { IMeta } from 'types';
|
||||
import { IMeta } from '@futureporn/types';
|
||||
|
||||
|
||||
export interface ITag {
|
||||
|
|
|
@ -4,7 +4,7 @@ import qs from 'qs';
|
|||
import { strapiUrl } from './constants'
|
||||
import { IAuthData } from '@/app/components/auth';
|
||||
import { ITagsResponse, ITag, ITagResponse } from './tags';
|
||||
import { IMeta } from 'types';
|
||||
import { IMeta } from '@futureporn/types';
|
||||
|
||||
export interface ITimestamp {
|
||||
id: number;
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
|
||||
import { ITag, ITagResponse, ITagsResponse } from '@/app/lib/tags'
|
||||
import { IMeta } from 'types';
|
||||
import { IMeta } from '@futureporn/types';
|
||||
|
||||
|
||||
export interface IToysResponse {
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
import { IVtuberResponse } from "types";
|
||||
import { IMeta } from "types";
|
||||
import { IVtuberResponse, IMeta } from "@futureporn/types";
|
||||
|
||||
|
||||
export interface ITweet {
|
||||
id: number;
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
import { IMeta } from "types";
|
||||
import { IMeta } from "@futureporn/types";
|
||||
|
||||
|
||||
export interface IUser {
|
||||
|
|
|
@ -1,11 +1,11 @@
|
|||
|
||||
import { strapiUrl, siteUrl } from './constants';
|
||||
import { getDateFromSafeDate, getSafeDate } from './dates';
|
||||
import { IVtuber, IVtuberResponse, IStream, IStreamResponse } from 'types';
|
||||
import { IVtuber, IVtuberResponse, IStream, IStreamResponse } from '@futureporn/types';
|
||||
import qs from 'qs';
|
||||
import { ITagVodRelationsResponse } from './tag-vod-relations';
|
||||
import { ITimestampsResponse } from './timestamps';
|
||||
import { IMeta, IMuxAsset, IMuxAssetResponse } from 'types';
|
||||
import { IMeta, IMuxAsset, IMuxAssetResponse } from '@futureporn/types';
|
||||
import { IB2File, IB2FileResponse } from '@/app/lib/b2File';
|
||||
import fetchAPI from './fetch-api';
|
||||
import { IUserResponse } from './users';
|
||||
|
|
|
@ -3,7 +3,7 @@
|
|||
import { IVod } from './vods'
|
||||
import { strapiUrl, siteUrl } from './constants';
|
||||
import qs from 'qs';
|
||||
import { IMeta, IVtuber, IVtubersResponse } from 'types';
|
||||
import { IMeta, IVtuber, IVtubersResponse } from '@futureporn/types';
|
||||
|
||||
|
||||
const fetchVtubersOptions = {
|
||||
|
|
|
@ -4,7 +4,7 @@ import VodCard from "@/app/components/vod-card";
|
|||
import { getVodTitle } from "@/app/components/vod-page";
|
||||
import { getVods } from '@/app/lib/vods';
|
||||
import { IVod } from "@/app/lib/vods";
|
||||
import { IVtuber } from 'types';
|
||||
import { IVtuber } from '@futureporn/types';
|
||||
import { getVtubers } from "./lib/vtubers";
|
||||
import VTuberCard from "./components/vtuber-card";
|
||||
import Link from 'next/link';
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
import { notFound } from 'next/navigation'
|
||||
import VTuberCard from '../components/vtuber-card'
|
||||
import { getVtubers } from '../lib/vtubers'
|
||||
import { IVtuber } from 'types'
|
||||
import { IVtuber } from '@futureporn/types'
|
||||
|
||||
|
||||
export default async function Page() {
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
{
|
||||
"name": "next",
|
||||
"name": "@futureporn/next",
|
||||
"version": "2.0.0",
|
||||
"private": true,
|
||||
"scripts": {
|
||||
|
@ -63,7 +63,7 @@
|
|||
"sharp": "^0.33.4",
|
||||
"slugify": "^1.6.6",
|
||||
"styled-components": "5.3.3",
|
||||
"types": "workspace:*",
|
||||
"@futureporn/types": "workspace:*",
|
||||
"yup": "^1.4.0"
|
||||
},
|
||||
"devDependencies": {
|
||||
|
|
|
@ -23,6 +23,9 @@ importers:
|
|||
'@fortawesome/react-fontawesome':
|
||||
specifier: ^0.2.2
|
||||
version: 0.2.2(@fortawesome/fontawesome-svg-core@6.5.2)(react@18.3.1)
|
||||
'@futureporn/types':
|
||||
specifier: workspace:*
|
||||
version: link:../types
|
||||
'@hookform/error-message':
|
||||
specifier: ^2.0.1
|
||||
version: 2.0.1(react-dom@18.3.1(react@18.3.1))(react-hook-form@7.52.1(react@18.3.1))(react@18.3.1)
|
||||
|
@ -167,9 +170,6 @@ importers:
|
|||
styled-components:
|
||||
specifier: 5.3.3
|
||||
version: 5.3.3(@babel/core@7.24.7)(react-dom@18.3.1(react@18.3.1))(react-is@16.13.1)(react@18.3.1)
|
||||
types:
|
||||
specifier: workspace:*
|
||||
version: link:../types
|
||||
yup:
|
||||
specifier: ^1.4.0
|
||||
version: 1.4.0
|
||||
|
@ -187,40 +187,6 @@ importers:
|
|||
specifier: 5.3.3
|
||||
version: 5.3.3
|
||||
|
||||
../..: {}
|
||||
|
||||
../archive: {}
|
||||
|
||||
../boop: {}
|
||||
|
||||
../bot: {}
|
||||
|
||||
../capture: {}
|
||||
|
||||
../image: {}
|
||||
|
||||
../infra: {}
|
||||
|
||||
../scout: {}
|
||||
|
||||
../storage: {}
|
||||
|
||||
../strapi: {}
|
||||
|
||||
../taco: {}
|
||||
|
||||
../temporal-worker: {}
|
||||
|
||||
../temporal-workflows: {}
|
||||
|
||||
../types: {}
|
||||
|
||||
../uppy: {}
|
||||
|
||||
../utils: {}
|
||||
|
||||
../video: {}
|
||||
|
||||
packages:
|
||||
|
||||
'@ampproject/remapping@2.3.0':
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
{
|
||||
"name": "scout",
|
||||
"name": "@futureporn/scout",
|
||||
"type": "module",
|
||||
"version": "3.3.0",
|
||||
"description": "vtuber data acquisition",
|
||||
|
@ -45,7 +45,7 @@
|
|||
"sharp": "^0.33.4",
|
||||
"slugify": "^1.6.6",
|
||||
"tsx": "^4.7.2",
|
||||
"types": "workspace:^",
|
||||
"@futureporn/types": "workspace:^",
|
||||
"xpath": "^0.0.34"
|
||||
},
|
||||
"packageManager": "pnpm@9.2.0",
|
||||
|
|
|
@ -17,6 +17,9 @@ importers:
|
|||
'@aws-sdk/s3-request-presigner':
|
||||
specifier: ^3.588.0
|
||||
version: 3.614.0
|
||||
'@futureporn/types':
|
||||
specifier: workspace:^
|
||||
version: link:../types
|
||||
'@paralleldrive/cuid2':
|
||||
specifier: ^2.2.2
|
||||
version: 2.2.2
|
||||
|
@ -89,9 +92,6 @@ importers:
|
|||
tsx:
|
||||
specifier: ^4.7.2
|
||||
version: 4.16.2
|
||||
types:
|
||||
specifier: workspace:^
|
||||
version: link:../types
|
||||
xpath:
|
||||
specifier: ^0.0.34
|
||||
version: 0.0.34
|
||||
|
@ -115,40 +115,6 @@ importers:
|
|||
specifier: ^5.4.5
|
||||
version: 5.5.3
|
||||
|
||||
../..: {}
|
||||
|
||||
../archive: {}
|
||||
|
||||
../boop: {}
|
||||
|
||||
../bot: {}
|
||||
|
||||
../capture: {}
|
||||
|
||||
../image: {}
|
||||
|
||||
../infra: {}
|
||||
|
||||
../next: {}
|
||||
|
||||
../storage: {}
|
||||
|
||||
../strapi: {}
|
||||
|
||||
../taco: {}
|
||||
|
||||
../temporal-worker: {}
|
||||
|
||||
../temporal-workflows: {}
|
||||
|
||||
../types: {}
|
||||
|
||||
../uppy: {}
|
||||
|
||||
../utils: {}
|
||||
|
||||
../video: {}
|
||||
|
||||
packages:
|
||||
|
||||
'@aws-crypto/crc32@5.2.0':
|
||||
|
|
|
@ -3,7 +3,7 @@ dotenv.config({
|
|||
path: '../../.env',
|
||||
});
|
||||
|
||||
import { type IVtuber } from 'types';
|
||||
import { type IVtuber } from '@futureporn/types';
|
||||
import twitter from './twitter.js';
|
||||
import fansly from './fansly.js';
|
||||
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
{
|
||||
"name": "storage",
|
||||
"name": "@futureporn/storage",
|
||||
"type": "module",
|
||||
"version": "1.0.0",
|
||||
"description": "",
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
{
|
||||
"name": "taco",
|
||||
"name": "@futureporn/taco",
|
||||
"type": "module",
|
||||
"version": "1.0.0",
|
||||
"description": "",
|
||||
|
|
|
@ -1,28 +1,35 @@
|
|||
{
|
||||
"name": "temporal-worker",
|
||||
"name": "@futureporn/temporal-worker",
|
||||
"type": "module",
|
||||
"version": "0.0.0",
|
||||
"private": true,
|
||||
"files": [
|
||||
"dist"
|
||||
],
|
||||
"scripts": {
|
||||
"build": "tsc --build",
|
||||
"isolate": "npx isolate-package isolate",
|
||||
"lint": "eslint .",
|
||||
"dev": "nodemon --ext js,ts,json,yaml --watch ./worker.ts --watch ../temporal-workflows --exec \"node --loader ts-node/esm --disable-warning=ExperimentalWarning ./worker.ts\"",
|
||||
"start": "node dist/temporal-worker/worker.js"
|
||||
},
|
||||
"dependencies": {
|
||||
"@futureporn/image": "workspace:^",
|
||||
"@futureporn/scout": "workspace:^",
|
||||
"@futureporn/storage": "workspace:^",
|
||||
"@futureporn/temporal-workflows": "workspace:*",
|
||||
"@futureporn/types": "workspace:*",
|
||||
"@futureporn/utils": "workspace:*",
|
||||
"@temporalio/activity": "^1.10.1",
|
||||
"@temporalio/worker": "^1.9.0",
|
||||
"@tsconfig/node20": "^20.1.4",
|
||||
"date-fns": "^3.6.0",
|
||||
"dotenv": "^16.4.5",
|
||||
"image": "workspace:^",
|
||||
"qs": "^6.12.3",
|
||||
"scout": "workspace:^",
|
||||
"storage": "workspace:^",
|
||||
"temporal-workflows": "workspace:*",
|
||||
"utils": "workspace:*"
|
||||
"qs": "^6.12.3"
|
||||
},
|
||||
"packageManager": "pnpm@9.5.0",
|
||||
"devDependencies": {
|
||||
"isolate-package": "^1.19.0",
|
||||
"nodemon": "^2.0.15",
|
||||
"ts-node": "^10.9.2",
|
||||
"typescript": "^5.5.3"
|
||||
|
|
File diff suppressed because it is too large
Load Diff
|
@ -1,7 +1,7 @@
|
|||
import { Worker } from '@temporalio/worker';
|
||||
import { URL } from 'url';
|
||||
import path from 'path';
|
||||
import * as activities from '../temporal-workflows/src/activities.js';
|
||||
import * as activities from '../../temporal-workflows/src/activities.js';
|
||||
// import * as workflows from 'temporal-workflows/workflows.js';
|
||||
import 'dotenv/config'
|
||||
|
|
@ -22,8 +22,8 @@
|
|||
},
|
||||
// Include the necessary files for your project
|
||||
"include": [
|
||||
"**/*.ts",
|
||||
"**/*.tsx"
|
||||
"./src/**/*.ts",
|
||||
"./src/**/*.tsx"
|
||||
],
|
||||
"exclude": [
|
||||
"node_modules"
|
||||
|
|
|
@ -1 +1 @@
|
|||
lib
|
||||
dist
|
|
@ -1 +1 @@
|
|||
lib
|
||||
dist
|
|
@ -1,5 +1,5 @@
|
|||
{
|
||||
"name": "temporal-workflows",
|
||||
"name": "@futureporn/temporal-workflows",
|
||||
"version": "0.0.1",
|
||||
"private": true,
|
||||
"type": "module",
|
||||
|
@ -17,12 +17,12 @@
|
|||
"@temporalio/workflow": "^1.10.1",
|
||||
"@types/qs": "^6.9.15",
|
||||
"date-fns": "^3.6.0",
|
||||
"image": "workspace:*",
|
||||
"@futureporn/image": "workspace:*",
|
||||
"qs": "^6.12.3",
|
||||
"scout": "workspace:^",
|
||||
"storage": "workspace:^",
|
||||
"types": "workspace:*",
|
||||
"utils": "workspace:*"
|
||||
"@futureporn/scout": "workspace:^",
|
||||
"@futureporn/storage": "workspace:^",
|
||||
"@futureporn/types": "workspace:*",
|
||||
"@futureporn/utils": "workspace:*"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@typescript-eslint/eslint-plugin": "^5.62.0",
|
||||
|
|
|
@ -8,6 +8,21 @@ importers:
|
|||
|
||||
.:
|
||||
dependencies:
|
||||
'@futureporn/image':
|
||||
specifier: workspace:*
|
||||
version: link:../image
|
||||
'@futureporn/scout':
|
||||
specifier: workspace:^
|
||||
version: link:../scout
|
||||
'@futureporn/storage':
|
||||
specifier: workspace:^
|
||||
version: link:../storage
|
||||
'@futureporn/types':
|
||||
specifier: workspace:*
|
||||
version: link:../types
|
||||
'@futureporn/utils':
|
||||
specifier: workspace:*
|
||||
version: link:../utils
|
||||
'@temporalio/activity':
|
||||
specifier: ^1.10.1
|
||||
version: 1.10.1
|
||||
|
@ -20,24 +35,9 @@ importers:
|
|||
date-fns:
|
||||
specifier: ^3.6.0
|
||||
version: 3.6.0
|
||||
image:
|
||||
specifier: workspace:*
|
||||
version: link:../image
|
||||
qs:
|
||||
specifier: ^6.12.3
|
||||
version: 6.12.3
|
||||
scout:
|
||||
specifier: workspace:^
|
||||
version: link:../scout
|
||||
storage:
|
||||
specifier: workspace:^
|
||||
version: link:../storage
|
||||
types:
|
||||
specifier: workspace:*
|
||||
version: link:../types
|
||||
utils:
|
||||
specifier: workspace:*
|
||||
version: link:../utils
|
||||
devDependencies:
|
||||
'@typescript-eslint/eslint-plugin':
|
||||
specifier: ^5.62.0
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
|
||||
import { log } from '@temporalio/activity';
|
||||
import { type IPlatformNotificationResponse, type IVtuberResponse, type IStreamResponse } from 'types'
|
||||
import { type IPlatformNotificationResponse, type IVtuberResponse, type IStreamResponse } from '@futureporn/types'
|
||||
|
||||
|
||||
if (!process.env.SCOUT_STRAPI_API_KEY) throw new Error('SCOUT_STRAPI_API_KEY is missing from env');
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
import { type IStreamResponse, type IStreamsResponse } from 'types';
|
||||
import { type IStreamResponse, type IStreamsResponse } from '@futureporn/types';
|
||||
import { subMinutes, addMinutes } from 'date-fns';
|
||||
import qs from 'qs'
|
||||
|
||||
|
|
|
@ -1,9 +1,9 @@
|
|||
import { type IVtubersResponse, type IVtuberResponse, type IVtuber } from 'types';
|
||||
import { fpSlugify } from 'utils';
|
||||
import { type IVtubersResponse, type IVtuberResponse, type IVtuber } from '@futureporn/types';
|
||||
import { fpSlugify } from '@futureporn/utils';
|
||||
import qs from 'qs';
|
||||
import { getProminentColor } from 'image';
|
||||
import { getImage } from 'scout/vtuber.js';
|
||||
import { uploadFile } from 'storage/s3.js';
|
||||
import { getProminentColor } from '@futureporn/image';
|
||||
import { getImage } from '@futureporn/scout/vtuber.js';
|
||||
import { uploadFile } from '@futureporn/storage/s3.js';
|
||||
|
||||
/**
|
||||
* find or create vtuber in Strapi
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
import { proxyActivities, sleep, log } from '@temporalio/workflow';
|
||||
import { NotificationData } from 'types';
|
||||
import { NotificationData } from '@futureporn/types';
|
||||
// Only import the activity types
|
||||
import type * as upsertVtuberType from './activities/upsertVtuber.js';
|
||||
import type * as upsertStreamType from './activities/upsertStream.js';
|
||||
|
|
|
@ -1 +1 @@
|
|||
lib
|
||||
dist
|
|
@ -1 +1 @@
|
|||
lib
|
||||
dist
|
|
@ -1,129 +1,133 @@
|
|||
|
||||
export = Futureporn;
|
||||
export as namespace Futureporn;
|
||||
|
||||
declare namespace Futureporn {
|
||||
|
||||
|
||||
interface IMuxAsset {
|
||||
id: number;
|
||||
attributes: {
|
||||
playbackId: string;
|
||||
assetId: string;
|
||||
}
|
||||
}
|
||||
|
||||
interface IPagination {
|
||||
page: number;
|
||||
pageSize: number;
|
||||
pageCount: number;
|
||||
total: number;
|
||||
}
|
||||
|
||||
interface IMuxAssetResponse {
|
||||
data: IMuxAsset;
|
||||
meta: IMeta;
|
||||
}
|
||||
|
||||
interface IMeta {
|
||||
pagination: IPagination;
|
||||
}
|
||||
|
||||
|
||||
|
||||
interface IPlatformNotification {
|
||||
id: number;
|
||||
attributes: {
|
||||
source: string;
|
||||
platform: string;
|
||||
date: string;
|
||||
date2: string;
|
||||
vtuber: number;
|
||||
}
|
||||
}
|
||||
|
||||
export interface IMuxAsset {
|
||||
id: number;
|
||||
attributes: {
|
||||
playbackId: string;
|
||||
assetId: string;
|
||||
}
|
||||
}
|
||||
interface IPlatformNotificationResponse {
|
||||
data: IPlatformNotification;
|
||||
meta: IMeta;
|
||||
error?: any;
|
||||
}
|
||||
|
||||
export interface IPagination {
|
||||
page: number;
|
||||
pageSize: number;
|
||||
pageCount: number;
|
||||
total: number;
|
||||
}
|
||||
interface IStream {
|
||||
id: number;
|
||||
attributes: {
|
||||
date: string;
|
||||
date2: string;
|
||||
archiveStatus: 'good' | 'issue' | 'missing';
|
||||
vods: IVodsResponse;
|
||||
cuid: string;
|
||||
vtuber: IVtuberResponse;
|
||||
tweet: ITweetResponse;
|
||||
isChaturbateStream: boolean;
|
||||
isFanslyStream: boolean;
|
||||
platformNotifications: IPlatformNotification[];
|
||||
}
|
||||
}
|
||||
|
||||
export interface IMuxAssetResponse {
|
||||
data: IMuxAsset;
|
||||
meta: IMeta;
|
||||
}
|
||||
interface IStreamResponse {
|
||||
data: IStream;
|
||||
meta: IMeta;
|
||||
error?: any;
|
||||
}
|
||||
|
||||
export interface IMeta {
|
||||
pagination: IPagination;
|
||||
}
|
||||
interface IStreamsResponse {
|
||||
data: IStream[];
|
||||
meta: IMeta;
|
||||
}
|
||||
|
||||
|
||||
interface IVtuber {
|
||||
id: number;
|
||||
attributes: {
|
||||
slug: string;
|
||||
displayName: string;
|
||||
chaturbate?: string;
|
||||
twitter?: string;
|
||||
patreon?: string;
|
||||
twitch?: string;
|
||||
tiktok?: string;
|
||||
onlyfans?: string;
|
||||
youtube?: string;
|
||||
linktree?: string;
|
||||
carrd?: string;
|
||||
fansly?: string;
|
||||
pornhub?: string;
|
||||
discord?: string;
|
||||
reddit?: string;
|
||||
throne?: string;
|
||||
instagram?: string;
|
||||
facebook?: string;
|
||||
merch?: string;
|
||||
vods: IVod[];
|
||||
description1: string;
|
||||
description2?: string;
|
||||
image: string;
|
||||
imageBlur?: string;
|
||||
themeColor: string;
|
||||
fanslyId?: string;
|
||||
chaturbateId?: string;
|
||||
twitterId?: string;
|
||||
}
|
||||
}
|
||||
|
||||
export interface IPlatformNotification {
|
||||
id: number;
|
||||
attributes: {
|
||||
source: string;
|
||||
interface IVtuberResponse {
|
||||
data: IVtuber;
|
||||
meta: IMeta;
|
||||
}
|
||||
|
||||
interface IVtubersResponse {
|
||||
data: IVtuber[];
|
||||
meta: IMeta;
|
||||
}
|
||||
|
||||
type NotificationData = {
|
||||
isMatch?: boolean;
|
||||
url: string;
|
||||
platform: string;
|
||||
date: string;
|
||||
date2: string;
|
||||
vtuber: number;
|
||||
}
|
||||
}
|
||||
|
||||
export interface IPlatformNotificationResponse {
|
||||
data: IPlatformNotification;
|
||||
meta: IMeta;
|
||||
error?: any;
|
||||
}
|
||||
|
||||
export interface IStream {
|
||||
id: number;
|
||||
attributes: {
|
||||
date: string;
|
||||
date2: string;
|
||||
archiveStatus: 'good' | 'issue' | 'missing';
|
||||
vods: IVodsResponse;
|
||||
cuid: string;
|
||||
vtuber: IVtuberResponse;
|
||||
tweet: ITweetResponse;
|
||||
isChaturbateStream: boolean;
|
||||
isFanslyStream: boolean;
|
||||
platformNotifications: IPlatformNotification[];
|
||||
}
|
||||
}
|
||||
|
||||
export interface IStreamResponse {
|
||||
data: IStream;
|
||||
meta: IMeta;
|
||||
error?: any;
|
||||
}
|
||||
|
||||
export interface IStreamsResponse {
|
||||
data: IStream[];
|
||||
meta: IMeta;
|
||||
}
|
||||
|
||||
|
||||
export interface IVtuber {
|
||||
id: number;
|
||||
attributes: {
|
||||
slug: string;
|
||||
channel: string;
|
||||
displayName: string;
|
||||
chaturbate?: string;
|
||||
twitter?: string;
|
||||
patreon?: string;
|
||||
twitch?: string;
|
||||
tiktok?: string;
|
||||
onlyfans?: string;
|
||||
youtube?: string;
|
||||
linktree?: string;
|
||||
carrd?: string;
|
||||
fansly?: string;
|
||||
pornhub?: string;
|
||||
discord?: string;
|
||||
reddit?: string;
|
||||
throne?: string;
|
||||
instagram?: string;
|
||||
facebook?: string;
|
||||
merch?: string;
|
||||
vods: IVod[];
|
||||
description1: string;
|
||||
description2?: string;
|
||||
image: string;
|
||||
imageBlur?: string;
|
||||
themeColor: string;
|
||||
fanslyId?: string;
|
||||
chaturbateId?: string;
|
||||
twitterId?: string;
|
||||
}
|
||||
}
|
||||
|
||||
export interface IVtuberResponse {
|
||||
data: IVtuber;
|
||||
meta: IMeta;
|
||||
}
|
||||
|
||||
export interface IVtubersResponse {
|
||||
data: IVtuber[];
|
||||
meta: IMeta;
|
||||
}
|
||||
|
||||
export type NotificationData = {
|
||||
isMatch?: boolean;
|
||||
url: string;
|
||||
platform: string;
|
||||
channel: string;
|
||||
displayName: string;
|
||||
date: string;
|
||||
userId: string | null;
|
||||
avatar: string;
|
||||
};
|
||||
date: string;
|
||||
userId: string | null;
|
||||
avatar: string;
|
||||
};
|
||||
}
|
|
@ -1,12 +1,13 @@
|
|||
{
|
||||
"name": "types",
|
||||
"name": "@futureporn/types",
|
||||
"type": "module",
|
||||
"version": "1.0.0",
|
||||
"description": "",
|
||||
"main": "index.d.ts",
|
||||
"scripts": {
|
||||
"test": "echo \"Warn: no test specified\" && exit 0"
|
||||
"test": "echo \"Warn: no test specified\" && exit 0",
|
||||
"build": "tsc --build"
|
||||
},
|
||||
"main": "index.d.ts",
|
||||
"keywords": [],
|
||||
"author": "",
|
||||
"license": "Unlicense",
|
||||
|
|
|
@ -15,15 +15,20 @@
|
|||
"noImplicitOverride": true,
|
||||
// Transpile our TypeScript code to JavaScript
|
||||
"module": "NodeNext",
|
||||
"outDir": "dist",
|
||||
"lib": [
|
||||
"es2022"
|
||||
]
|
||||
],
|
||||
"noImplicitAny": true,
|
||||
"noImplicitThis": true,
|
||||
"strictFunctionTypes": true,
|
||||
"strictNullChecks": true,
|
||||
"types": [],
|
||||
"noEmit": true,
|
||||
"forceConsistentCasingInFileNames": true
|
||||
},
|
||||
// Include the necessary files for your project
|
||||
"include": [
|
||||
"**/*.ts",
|
||||
"**/*.tsx"
|
||||
"files": [
|
||||
"index.d.ts"
|
||||
],
|
||||
"exclude": [
|
||||
"node_modules"
|
||||
|
|
|
@ -3,7 +3,7 @@ import { basename, join } from 'path';
|
|||
import os from 'node:os';
|
||||
import fs from 'node:fs';
|
||||
import { createId } from '@paralleldrive/cuid2';
|
||||
import { ua0 } from 'scout/ua.js';
|
||||
import { ua0 } from '@futureporn/scout/ua.js';
|
||||
import { Readable } from 'stream';
|
||||
import { finished } from 'stream/promises';
|
||||
import pRetry from 'p-retry';
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
{
|
||||
"name": "utils",
|
||||
"name": "@futureporn/utils",
|
||||
"type": "module",
|
||||
"version": "1.0.0",
|
||||
"description": "",
|
||||
|
@ -14,7 +14,7 @@
|
|||
"@paralleldrive/cuid2": "^2.2.2",
|
||||
"@types/node": "^20.14.9",
|
||||
"p-retry": "^5.1.2",
|
||||
"scout": "workspace:^",
|
||||
"@futureporn/scout": "workspace:^",
|
||||
"slugify": "^1.6.6"
|
||||
},
|
||||
"devDependencies": {
|
||||
|
|
|
@ -8,6 +8,9 @@ importers:
|
|||
|
||||
.:
|
||||
dependencies:
|
||||
'@futureporn/scout':
|
||||
specifier: workspace:^
|
||||
version: link:../scout
|
||||
'@paralleldrive/cuid2':
|
||||
specifier: ^2.2.2
|
||||
version: 2.2.2
|
||||
|
@ -17,9 +20,6 @@ importers:
|
|||
p-retry:
|
||||
specifier: ^5.1.2
|
||||
version: 5.1.2
|
||||
scout:
|
||||
specifier: workspace:^
|
||||
version: link:../scout
|
||||
slugify:
|
||||
specifier: ^1.6.6
|
||||
version: 1.6.6
|
||||
|
|
|
@ -6,4 +6,18 @@ settings:
|
|||
|
||||
importers:
|
||||
|
||||
.: {}
|
||||
.:
|
||||
dependencies:
|
||||
types:
|
||||
specifier: ^0.1.1
|
||||
version: 0.1.1
|
||||
|
||||
packages:
|
||||
|
||||
types@0.1.1:
|
||||
resolution: {integrity: sha512-JuntZtJj4MKLE9x/XBs7IjsznYhzETwr34pw3XJTKvgYtAMdeMG+o8x8U85E5Lm6eCPa1DdOdGVsHMwq4ZnZAg==}
|
||||
engines: {node: '>= 0.6.0'}
|
||||
|
||||
snapshots:
|
||||
|
||||
types@0.1.1: {}
|
||||
|
|
|
@ -1,2 +1,2 @@
|
|||
packages:
|
||||
- 'packages/*'
|
||||
- 'packages/*'
|
||||
|
|
Loading…
Reference in New Issue