import * as cors from 'cors'
import { createReadStream } from 'fs-extra'
import * as express from 'express'
-import { CONFIG, STATIC_DOWNLOAD_PATHS, STATIC_MAX_AGE, STATIC_PATHS, ROUTE_CACHE_LIFETIME } from '../initializers'
+import { CONFIG, ROUTE_CACHE_LIFETIME, STATIC_DOWNLOAD_PATHS, STATIC_MAX_AGE, STATIC_PATHS } from '../initializers'
import { VideosPreviewCache } from '../lib/cache'
import { cacheRoute } from '../middlewares/cache'
import { asyncMiddleware, videosGetValidator } from '../middlewares'
import { VideosCaptionCache } from '../lib/cache/videos-caption-cache'
import { UserModel } from '../models/account/user'
import { VideoCommentModel } from '../models/video/video-comment'
-import { HttpNodeinfoDiasporaSoftwareNsSchema20 } from '../models/nodeinfo'
+import { HttpNodeinfoDiasporaSoftwareNsSchema20 } from '../../shared/models/nodeinfo'
const packageJSON = require('../../../package.json')
const staticRouter = express.Router()
--- /dev/null
+import * as Sequelize from 'sequelize'
+
+declare namespace Migration {
+ interface Boolean extends Sequelize.DefineAttributeColumnOptions {
+ defaultValue: boolean | null
+ }
+
+ interface String extends Sequelize.DefineAttributeColumnOptions {
+ defaultValue: string | null
+ }
+
+ interface Integer extends Sequelize.DefineAttributeColumnOptions {
+ defaultValue: number | null
+ }
+
+ interface BigInteger extends Sequelize.DefineAttributeColumnOptions {
+ defaultValue: Sequelize.DataTypeBigInt | number | null
+ }
+
+ interface UUID extends Sequelize.DefineAttributeColumnOptions {
+ defaultValue: Sequelize.DataTypeUUIDv4 | null
+ }
+}
+
+export {
+ Migration
+}
+++ /dev/null
-import * as Sequelize from 'sequelize'
-
-declare namespace Migration {
- interface Boolean extends Sequelize.DefineAttributeColumnOptions {
- defaultValue: boolean | null
- }
-
- interface String extends Sequelize.DefineAttributeColumnOptions {
- defaultValue: string | null
- }
-
- interface Integer extends Sequelize.DefineAttributeColumnOptions {
- defaultValue: number | null
- }
-
- interface BigInteger extends Sequelize.DefineAttributeColumnOptions {
- defaultValue: Sequelize.DataTypeBigInt | number | null
- }
-
- interface UUID extends Sequelize.DefineAttributeColumnOptions {
- defaultValue: Sequelize.DataTypeUUIDv4 | null
- }
-}
-
-export {
- Migration
-}
+++ /dev/null
-/**
- * NodeInfo schema version 2.0.
- */
-export interface HttpNodeinfoDiasporaSoftwareNsSchema20 {
- /**
- * The schema version, must be 2.0.
- */
- version: '2.0'
- /**
- * Metadata about server software in use.
- */
- software: {
- /**
- * The canonical name of this server software.
- */
- name: string
- /**
- * The version of this server software.
- */
- version: string
- }
- /**
- * The protocols supported on this server.
- */
- protocols: (
- | 'activitypub'
- | 'buddycloud'
- | 'dfrn'
- | 'diaspora'
- | 'libertree'
- | 'ostatus'
- | 'pumpio'
- | 'tent'
- | 'xmpp'
- | 'zot')[]
- /**
- * The third party sites this server can connect to via their application API.
- */
- services: {
- /**
- * The third party sites this server can retrieve messages from for combined display with regular traffic.
- */
- inbound: ('atom1.0' | 'gnusocial' | 'imap' | 'pnut' | 'pop3' | 'pumpio' | 'rss2.0' | 'twitter')[]
- /**
- * The third party sites this server can publish messages to on the behalf of a user.
- */
- outbound: (
- | 'atom1.0'
- | 'blogger'
- | 'buddycloud'
- | 'diaspora'
- | 'dreamwidth'
- | 'drupal'
- | 'facebook'
- | 'friendica'
- | 'gnusocial'
- | 'google'
- | 'insanejournal'
- | 'libertree'
- | 'linkedin'
- | 'livejournal'
- | 'mediagoblin'
- | 'myspace'
- | 'pinterest'
- | 'pnut'
- | 'posterous'
- | 'pumpio'
- | 'redmatrix'
- | 'rss2.0'
- | 'smtp'
- | 'tent'
- | 'tumblr'
- | 'twitter'
- | 'wordpress'
- | 'xmpp')[]
- }
- /**
- * Whether this server allows open self-registration.
- */
- openRegistrations: boolean
- /**
- * Usage statistics for this server.
- */
- usage: {
- /**
- * statistics about the users of this server.
- */
- users: {
- /**
- * The total amount of on this server registered users.
- */
- total?: number
- /**
- * The amount of users that signed in at least once in the last 180 days.
- */
- activeHalfyear?: number
- /**
- * The amount of users that signed in at least once in the last 30 days.
- */
- activeMonth?: number
- };
- /**
- * The amount of posts that were made by users that are registered on this server.
- */
- localPosts?: number
- /**
- * The amount of comments that were made by users that are registered on this server.
- */
- localComments?: number
- }
- /**
- * Free form key value pairs for software specific values. Clients should not rely on any specific key present.
- */
- metadata: {
- [k: string]: any
- }
-}
--- /dev/null
+/**
+ * NodeInfo schema version 2.0.
+ */
+export interface HttpNodeinfoDiasporaSoftwareNsSchema20 {
+ /**
+ * The schema version, must be 2.0.
+ */
+ version: '2.0'
+ /**
+ * Metadata about server software in use.
+ */
+ software: {
+ /**
+ * The canonical name of this server software.
+ */
+ name: string
+ /**
+ * The version of this server software.
+ */
+ version: string
+ }
+ /**
+ * The protocols supported on this server.
+ */
+ protocols: (
+ | 'activitypub'
+ | 'buddycloud'
+ | 'dfrn'
+ | 'diaspora'
+ | 'libertree'
+ | 'ostatus'
+ | 'pumpio'
+ | 'tent'
+ | 'xmpp'
+ | 'zot')[]
+ /**
+ * The third party sites this server can connect to via their application API.
+ */
+ services: {
+ /**
+ * The third party sites this server can retrieve messages from for combined display with regular traffic.
+ */
+ inbound: ('atom1.0' | 'gnusocial' | 'imap' | 'pnut' | 'pop3' | 'pumpio' | 'rss2.0' | 'twitter')[]
+ /**
+ * The third party sites this server can publish messages to on the behalf of a user.
+ */
+ outbound: (
+ | 'atom1.0'
+ | 'blogger'
+ | 'buddycloud'
+ | 'diaspora'
+ | 'dreamwidth'
+ | 'drupal'
+ | 'facebook'
+ | 'friendica'
+ | 'gnusocial'
+ | 'google'
+ | 'insanejournal'
+ | 'libertree'
+ | 'linkedin'
+ | 'livejournal'
+ | 'mediagoblin'
+ | 'myspace'
+ | 'pinterest'
+ | 'pnut'
+ | 'posterous'
+ | 'pumpio'
+ | 'redmatrix'
+ | 'rss2.0'
+ | 'smtp'
+ | 'tent'
+ | 'tumblr'
+ | 'twitter'
+ | 'wordpress'
+ | 'xmpp')[]
+ }
+ /**
+ * Whether this server allows open self-registration.
+ */
+ openRegistrations: boolean
+ /**
+ * Usage statistics for this server.
+ */
+ usage: {
+ /**
+ * statistics about the users of this server.
+ */
+ users: {
+ /**
+ * The total amount of on this server registered users.
+ */
+ total?: number
+ /**
+ * The amount of users that signed in at least once in the last 180 days.
+ */
+ activeHalfyear?: number
+ /**
+ * The amount of users that signed in at least once in the last 30 days.
+ */
+ activeMonth?: number
+ };
+ /**
+ * The amount of posts that were made by users that are registered on this server.
+ */
+ localPosts?: number
+ /**
+ * The amount of comments that were made by users that are registered on this server.
+ */
+ localComments?: number
+ }
+ /**
+ * Free form key value pairs for software specific values. Clients should not rely on any specific key present.
+ */
+ metadata: {
+ [k: string]: any
+ }
+}