Skip to content
GitLab
Projects
Groups
Snippets
/
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
Menu
Open sidebar
Framasoft
PeerTube
PeerTube
Commits
f008e9f3
Verified
Commit
f008e9f3
authored
Jan 19, 2023
by
Chocobozzz
Browse files
Add missing url unique index in local video viewer
parent
5bdfa604
Changes
4
Hide whitespace changes
Inline
Side-by-side
client/src/app/shared/shared-video-miniature/videos-list.component.ts
View file @
f008e9f3
...
...
@@ -415,8 +415,6 @@ export class VideosListComponent implements OnInit, OnChanges, OnDestroy {
.
pipe
(
concatMap
(({
reset
,
obs
})
=>
obs
.
pipe
(
map
(({
data
})
=>
({
data
,
reset
})))))
.
subscribe
({
next
:
({
data
,
reset
})
=>
{
console
.
log
(
data
[
0
].
name
)
this
.
hasDoneFirstQuery
=
true
this
.
lastQueryLength
=
data
.
length
...
...
server/initializers/constants.ts
View file @
f008e9f3
...
...
@@ -6,7 +6,6 @@ import { randomInt, root } from '@shared/core-utils'
import
{
AbuseState
,
JobType
,
UserRegistrationState
,
VideoChannelSyncState
,
VideoImportState
,
VideoPrivacy
,
...
...
@@ -26,7 +25,7 @@ import { CONFIG, registerConfigChangedHandler } from './config'
// ---------------------------------------------------------------------------
const
LAST_MIGRATION_VERSION
=
75
0
const
LAST_MIGRATION_VERSION
=
75
5
// ---------------------------------------------------------------------------
...
...
@@ -79,8 +78,6 @@ const SORTABLE_COLUMNS = {
ACCOUNT_FOLLOWERS
:
[
'
createdAt
'
],
CHANNEL_FOLLOWERS
:
[
'
createdAt
'
],
USER_REGISTRATIONS
:
[
'
createdAt
'
,
'
state
'
],
VIDEOS
:
[
'
name
'
,
'
duration
'
,
'
createdAt
'
,
'
publishedAt
'
,
'
originallyPublishedAt
'
,
'
views
'
,
'
likes
'
,
'
trending
'
,
'
hot
'
,
'
best
'
],
// Don't forget to update peertube-search-index with the same values
...
...
@@ -293,10 +290,6 @@ const CONSTRAINTS_FIELDS = {
ABUSE_MESSAGES
:
{
MESSAGE
:
{
min
:
2
,
max
:
3000
}
// Length
},
USER_REGISTRATIONS
:
{
REASON_MESSAGE
:
{
min
:
2
,
max
:
3000
},
// Length
MODERATOR_MESSAGE
:
{
min
:
2
,
max
:
3000
}
// Length
},
VIDEO_BLACKLIST
:
{
REASON
:
{
min
:
2
,
max
:
300
}
// Length
},
...
...
@@ -523,12 +516,6 @@ const ABUSE_STATES: { [ id in AbuseState ]: string } = {
[
AbuseState
.
ACCEPTED
]:
'
Accepted
'
}
const
USER_REGISTRATION_STATES
:
{
[
id
in
UserRegistrationState
]:
string
}
=
{
[
UserRegistrationState
.
PENDING
]:
'
Pending
'
,
[
UserRegistrationState
.
REJECTED
]:
'
Rejected
'
,
[
UserRegistrationState
.
ACCEPTED
]:
'
Accepted
'
}
const
VIDEO_PLAYLIST_PRIVACIES
:
{
[
id
in
VideoPlaylistPrivacy
]:
string
}
=
{
[
VideoPlaylistPrivacy
.
PUBLIC
]:
'
Public
'
,
[
VideoPlaylistPrivacy
.
UNLISTED
]:
'
Unlisted
'
,
...
...
@@ -673,7 +660,7 @@ const USER_PASSWORD_CREATE_LIFETIME = 60000 * 60 * 24 * 7 // 7 days
const
TWO_FACTOR_AUTH_REQUEST_TOKEN_LIFETIME
=
60000
*
10
// 10 minutes
const
EMAIL_VERIFY_LIFETIME
=
60000
*
60
// 60 minutes
const
USER_
EMAIL_VERIFY_LIFETIME
=
60000
*
60
// 60 minutes
const
NSFW_POLICY_TYPES
:
{
[
id
:
string
]:
NSFWPolicyType
}
=
{
DO_NOT_LIST
:
'
do_not_list
'
,
...
...
@@ -1082,14 +1069,13 @@ export {
VIDEO_TRANSCODING_FPS
,
FFMPEG_NICE
,
ABUSE_STATES
,
USER_REGISTRATION_STATES
,
LRU_CACHE
,
REQUEST_TIMEOUTS
,
MAX_LOCAL_VIEWER_WATCH_SECTIONS
,
USER_PASSWORD_RESET_LIFETIME
,
USER_PASSWORD_CREATE_LIFETIME
,
MEMOIZE_TTL
,
EMAIL_VERIFY_LIFETIME
,
USER_
EMAIL_VERIFY_LIFETIME
,
OVERVIEWS
,
SCHEDULER_INTERVALS_MS
,
REPEAT_JOBS
,
...
...
server/initializers/migrations/0755-unique-viewer-url.ts
0 → 100644
View file @
f008e9f3
import
*
as
Sequelize
from
'
sequelize
'
async
function
up
(
utils
:
{
transaction
:
Sequelize
.
Transaction
queryInterface
:
Sequelize
.
QueryInterface
sequelize
:
Sequelize
.
Sequelize
db
:
any
}):
Promise
<
void
>
{
const
{
transaction
}
=
utils
const
query
=
'
DELETE FROM "localVideoViewer" t1
'
+
'
USING (SELECT MIN(id) as id, "url" FROM "localVideoViewer" GROUP BY "url" HAVING COUNT(*) > 1) t2
'
+
'
WHERE t1."url" = t2."url" AND t1.id <> t2.id
'
await
utils
.
sequelize
.
query
(
query
,
{
transaction
})
}
async
function
down
(
utils
:
{
queryInterface
:
Sequelize
.
QueryInterface
transaction
:
Sequelize
.
Transaction
})
{
}
export
{
up
,
down
}
server/models/view/local-video-viewer.ts
View file @
f008e9f3
...
...
@@ -21,6 +21,10 @@ import { LocalVideoViewerWatchSectionModel } from './local-video-viewer-watch-se
indexes
:
[
{
fields
:
[
'
videoId
'
]
},
{
fields
:
[
'
url
'
],
unique
:
true
}
]
})
...
...
Write
Preview
Supports
Markdown
0%
Try again
or
attach a new file
.
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment