Skip to content
Closed

junit5 #1150

Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
1483 commits
Select commit Hold shift + click to select a range
60c6998
fix missing hd url
pidoubleyou Jan 28, 2023
e3dbdd4
add another hd url
pidoubleyou Jan 29, 2023
d88ff8b
add method to get attribute value as String
pidoubleyou Feb 15, 2023
bea1faf
supports quality fhd and uhd
pidoubleyou Feb 15, 2023
bdd2b3e
use android-client instead of desktop browser client
pidoubleyou Feb 15, 2023
c54fdc5
optimize hd urls
pidoubleyou Feb 15, 2023
0966082
fix test
pidoubleyou Feb 15, 2023
8b107b8
Merge pull request #881 from mediathekview/feature/zdf_hd
pidoubleyou Feb 15, 2023
16d7d26
extend exception handling
pidoubleyou Feb 19, 2023
cc376eb
add language specific subtitle urls
pidoubleyou Feb 26, 2023
61fd25c
Merge pull request #885 from mediathekview/feature/884
pidoubleyou Feb 26, 2023
c1d84d3
fix missing hosts in some funk urls
pidoubleyou Mar 12, 2023
f8fec96
fix url parameter which do contain equals (e.g. SRF)
codingPF Jul 21, 2023
6227a65
remove constantly changing parameter from video url
codingPF Jul 21, 2023
970f8da
fix junit testcase
codingPF Jul 24, 2023
4dd0770
Merge pull request #907 from mediathekview/bugfix/develop904
pidoubleyou Aug 1, 2023
ddea42e
add ignoreFilmFilter
codingPF Aug 13, 2023
5805c65
Sonar cloud
codingPF Aug 13, 2023
c3e5a3a
junit coverrage and external files
codingPF Aug 13, 2023
e511370
code smell
codingPF Aug 19, 2023
a6c9f4a
Merge pull request #913 from mediathekview/dev/ignoreFilmFilter
codingPF Aug 19, 2023
9d7edce
add livestream filmlist import
codingPF Aug 20, 2023
3d595c5
add junit test for all formats
codingPF Aug 20, 2023
5aeab96
fix config init
codingPF Aug 20, 2023
d65c3c6
remove parameter from url extract from m3u8 playlist
codingPF Oct 2, 2023
2fc9a91
Sonarcloud fixes
codingPF Oct 2, 2023
372eadb
Merge pull request #926 from mediathekview/bugfix/923dev
codingPF Oct 2, 2023
0626c6c
Updated KikaApiTopicDeserializerTest to JUnit5
ForBai Oct 1, 2023
d598f9a
Updated KikaApiVideoInfoDeserializerTest to JUnit5
ForBai Oct 1, 2023
df6ad4d
Fix name in KikaApiTopicDeserializerTest.java
ForBai Oct 1, 2023
75d9d58
Fix name KikaApiVideoInfoDeserializerTest.java
ForBai Oct 1, 2023
d86a115
remove br crawler
pidoubleyou Oct 3, 2023
ff4de2b
remove br crawler
pidoubleyou Oct 3, 2023
6a05708
remove br crawler
pidoubleyou Oct 3, 2023
bb04fd1
remove BR crawler
pidoubleyou Oct 3, 2023
1989db1
update to Junit5
codingPF Oct 3, 2023
b805eb3
set default livestream file path to root
codingPF Oct 3, 2023
4b36765
typo
codingPF Oct 13, 2023
7fe4fa4
Merge pull request #927 from mediathekview/dev/livestreamImport
codingPF Oct 13, 2023
dc43ded
init importfilmlists
codingPF Oct 13, 2023
2c1af04
use crawler fileSize (like all the others do)
codingPF Nov 1, 2023
28de909
maxtime is in min and should be fine to check every min
codingPF Nov 1, 2023
db29465
add film available check
codingPF Nov 1, 2023
a8e197c
remove NexxCloudSessionId test until fixed
codingPF Nov 1, 2023
c8f11d9
move methods to mlib
codingPF Nov 1, 2023
14ab0a8
undo local change
codingPF Nov 1, 2023
fbf5c34
remove (old) importfilmlist configuration items
codingPF Nov 1, 2023
357c75e
add messages and fix java doc
codingPF Nov 1, 2023
813935b
do not remove livestreams
codingPF Nov 1, 2023
4f8060d
sonarcloud
codingPF Nov 1, 2023
cb44dfa
Merge pull request #939 from mediathekview/dev/importFilmlists
codingPF Nov 3, 2023
1460c7a
update configurationmanager to support configuration file name
codingPF Nov 5, 2023
5a5e59c
change to configurable pool size
codingPF Nov 8, 2023
402a0b8
write new and old format json
codingPF Nov 8, 2023
16e2afa
align classpath config and file config
codingPF Nov 8, 2023
642bfcb
Merge pull request #940 from mediathekview/feature/configfilename
codingPF Nov 8, 2023
769698e
add option to provide args to mserver docker
codingPF Nov 10, 2023
e91dacd
Move ratelimiter to crawler
codingPF Nov 12, 2023
b1af62d
#938 use url optimizers in kika crawler
pidoubleyou Nov 12, 2023
a9db335
ratelimiter for crawler calls, added exception for duplicates
codingPF Nov 15, 2023
5fb7547
threadsafe
codingPF Nov 15, 2023
1913d72
#938 use url optimizers in kika crawler
pidoubleyou Nov 12, 2023
74ae034
undo
codingPF Nov 16, 2023
5c46be8
typo
codingPF Nov 16, 2023
8a0a937
Merge branch 'develop' into feature/ratelimiter
codingPF Nov 16, 2023
f35a682
Merge pull request #948 from mediathekview/feature/ratelimiter
codingPF Nov 16, 2023
a3893ff
add resolution typo, log duplicates, add audiodescription to videos
codingPF Nov 17, 2023
7c7dc2f
no incremental mode - depht to be controlled by maximumSubpages
codingPF Nov 18, 2023
a301a50
add rejected log and remove logging (since already in subtask)
codingPF Nov 18, 2023
2d6eb39
fix DW to always have normal url, fix testcase
codingPF Nov 18, 2023
a4dd4d8
#938 optimize wdr urls
pidoubleyou Nov 21, 2023
9e44db2
#938 optimize wdr urls
pidoubleyou Nov 21, 2023
5a91a39
fix unknown duration "Sek."
pidoubleyou Dec 3, 2023
0c3cb99
search more episodes
pidoubleyou Jan 6, 2024
d2cf832
process more episodes only in topic search
pidoubleyou Jan 7, 2024
462eb30
Merge pull request #956 from mediathekview/feature/955
pidoubleyou Jan 7, 2024
5921d9e
use new experimental topics-urls
pidoubleyou Feb 4, 2024
e3ef3f9
Merge pull request #958 from mediathekview/feature/ard_topics
pidoubleyou Feb 7, 2024
041e336
parameterize sender in topic url
pidoubleyou Feb 7, 2024
1cfc733
Merge pull request #960 from mediathekview/feature/ard_topics
pidoubleyou Feb 7, 2024
41003af
init
codingPF Feb 17, 2024
0a316ac
moved to abstractPagedTask
codingPF Feb 17, 2024
8273e69
remove debug src
codingPF Feb 17, 2024
7e6ef2c
proper topic for history episodes
codingPF Feb 17, 2024
6c1fe53
cleanup and subtitles if embedded
codingPF Feb 18, 2024
c4c67ad
comment
codingPF Feb 18, 2024
d231fb6
sonar
codingPF Feb 18, 2024
cb98d9a
#965 filter ard topics
pidoubleyou Feb 19, 2024
0751f40
resolve missing subtitles
codingPF Feb 24, 2024
2e58fbf
fix for archive topic
codingPF Feb 24, 2024
bd3fd54
junit
codingPF Feb 25, 2024
2a936d3
Sonar fixes and more logging
codingPF Feb 26, 2024
6d67553
videourls from playlist
codingPF Feb 28, 2024
7dcbcf7
resolve deadlock
codingPF Feb 28, 2024
52639aa
resolve episode as last step
codingPF Feb 28, 2024
eda6bd1
Merge film creation into episodetask and test cases
codingPF Feb 29, 2024
cf3ad05
remove test case
codingPF Feb 29, 2024
381e7aa
fallback to low resolution url in case of several playlist entries
codingPF Mar 20, 2024
af81acf
remove import
codingPF Mar 20, 2024
5dee698
configure topics search
pidoubleyou Mar 23, 2024
f614070
optimize orf urls if only one stream is found
pidoubleyou Mar 23, 2024
20f8137
fix 973 (orf dummy urls)
codingPF Apr 12, 2024
9630cb8
Merge pull request #974 from mediathekview/devOrfOn
codingPF Apr 17, 2024
a17470a
add episode to title
codingPF Apr 21, 2024
b8df846
unused
codingPF Apr 25, 2024
28dc00a
ard v6
codingPF Apr 28, 2024
6198c0d
fix subtitle
codingPF Apr 28, 2024
3041195
remove system.out
pidoubleyou Apr 29, 2024
fa8a8df
add test for episodes in title
pidoubleyou Apr 29, 2024
ac39221
use two digits for season and episode in title
pidoubleyou Apr 29, 2024
e6624e1
use two digits for season and episode in title
pidoubleyou Apr 29, 2024
c71545b
add sub only if it's not empty
pidoubleyou Apr 29, 2024
1daa35a
fix to stop loading page 1 if it does not exists
codingPF May 2, 2024
b021995
add resolution
codingPF May 2, 2024
807fc64
use String.format
codingPF May 2, 2024
4ab49ce
little helper to create/validate testcases
codingPF May 2, 2024
6f6b30f
new handling of AD, DGS movies
codingPF May 2, 2024
15aad3e
add missing protocoll
codingPF May 2, 2024
74baba9
sonar
codingPF May 3, 2024
67be16c
more sonar
codingPF May 3, 2024
aeb33aa
partner filter
codingPF May 8, 2024
4d02c81
add parsevideofromthumbnail
codingPF May 8, 2024
fc4bf1f
ignore certain partners
codingPF May 9, 2024
1ba399b
update test case
codingPF May 9, 2024
41af0de
Merge pull request #976 from mediathekview/feature/942
codingPF May 11, 2024
3514aed
Merge pull request #983 from mediathekview/hotfix/981
codingPF May 11, 2024
94be6d1
clean title for UT,AD
codingPF May 17, 2024
f776edd
fix test for new AD,DGS title
codingPF May 18, 2024
547e423
Merge pull request #979 from mediathekview/hotfix/devArdv6
codingPF May 18, 2024
e846616
fix 992-01-990-989 and remove java preview feature
codingPF May 24, 2024
e2e4203
update test cases
codingPF May 24, 2024
e0c5f12
Merge pull request #994 from mediathekview/bugfix/992-991-990-989
codingPF May 25, 2024
e057760
add film even if they only have one (small) url
codingPF May 28, 2024
9f0487d
ZDF Film to Partner logic
codingPF May 31, 2024
b4360ef
remove debug source
codingPF Jun 2, 2024
bd3cc4f
enable more debug info
codingPF Jun 3, 2024
e46f16f
align unit test to optional
codingPF Jun 7, 2024
d85c395
Merge pull request #997 from mediathekview/bugfix/zdfFilm2Partner
codingPF Jun 7, 2024
40d77ba
ard: new day page url
pidoubleyou Oct 6, 2024
564a1de
Merge pull request #1013 from mediathekview/feature/1005
pidoubleyou Oct 6, 2024
8392a36
zdf: 720p als normale Url analog ARD
pidoubleyou Feb 24, 2025
5ed2b51
Merge pull request #1031 from mediathekview/feature/1020
pidoubleyou Feb 24, 2025
f31db3f
github actions cache aktualisiert
alex1702 Feb 26, 2025
3119b7d
srf: 720p als normale Url analog ARD/ZDF
pidoubleyou Mar 9, 2025
271a1da
update github actions cache version
pidoubleyou Mar 9, 2025
411586f
720p as normal url
pidoubleyou Mar 9, 2025
103c8df
fix tests
pidoubleyou Mar 9, 2025
4347472
fix tests
pidoubleyou Mar 9, 2025
f774349
Merge pull request #1036 from mediathekview/feature/srf
pidoubleyou Mar 9, 2025
afc22a9
tagesschau24 als eigener Sender
pidoubleyou Mar 10, 2025
c8bfb53
new Arte Crawler
codingPF Jun 23, 2025
0824a84
typo
codingPF Jun 23, 2025
2810cf1
cleanup unit test filenames
codingPF Jun 23, 2025
8a02645
sonarcloud
codingPF Jun 23, 2025
94f67fc
adding two more testcases
codingPF Jun 28, 2025
4af4337
add all urls to default allocation instead of first found
codingPF Jun 30, 2025
b501300
Merge pull request #1052 from mediathekview/feature/Orf1051
codingPF Jul 6, 2025
02e381d
new ZDF Mediathek (#1049)
pidoubleyou Jul 13, 2025
4d67b1d
add ov video info and create new film in case present
codingPF Jul 13, 2025
f83d44f
fix test cases and avoid finding ov twice
codingPF Jul 14, 2025
5930c54
hotfix 1055 broken wdr urls
codingPF Jul 14, 2025
886cf47
Merge pull request #1061 from mediathekview/feature/ard1047
codingPF Jul 22, 2025
775eb1e
align configuration and fix typo in crawler
codingPF Jul 22, 2025
7901e83
parallel mode via variable
codingPF Jul 23, 2025
8f42f05
nextPage logic
codingPF Aug 13, 2025
702f6f6
fix ClassCastException if contentOwner missing
pidoubleyou Aug 15, 2025
b0bb3ca
less logging - update config
codingPF Aug 16, 2025
d69fa8a
filter noVideo entries
codingPF Aug 17, 2025
dcbf7ca
add missing sender assignment
pidoubleyou Aug 17, 2025
a51e8ac
fix failing test after change #d69fa8a
pidoubleyou Aug 17, 2025
993a23a
remove old test cases
codingPF Aug 18, 2025
4c19c19
add attribute to filter
codingPF Aug 18, 2025
a064c68
add missing null check
pidoubleyou Aug 23, 2025
b7ee6a5
handle missing sender
pidoubleyou Aug 23, 2025
bc5bc2a
add missing geo info
pidoubleyou Aug 26, 2025
b00c025
#1076 fix sender erkennung
pidoubleyou Aug 28, 2025
7d21852
fix typetoken
pidoubleyou Aug 30, 2025
4e452c1
Merge pull request #1069 from mediathekview/feature/1064
codingPF Aug 30, 2025
5490ba4
update dependencies and java 21
pidoubleyou Sep 6, 2025
e740cd7
fix sender erkennung
pidoubleyou Sep 7, 2025
50deda4
correct handling of dgs videotype (#1067)
pidoubleyou Sep 7, 2025
83d5dcf
#1090 fix missing tvservice
pidoubleyou Oct 1, 2025
4f6e325
integrate mlib (#1091)
pidoubleyou Oct 3, 2025
4bb1c2a
deep search for sport
pidoubleyou Oct 7, 2025
ed84149
new ARTE crawler
codingPF Nov 2, 2025
f525f77
remove unnecessary token
pidoubleyou Nov 4, 2025
527a85c
add RateLimit for determineFileSize
codingPF Nov 16, 2025
6ac8f26
improved subpage logic
codingPF Nov 16, 2025
56dd97e
add UT videos
codingPF Nov 16, 2025
1dbec6d
update junit
codingPF Nov 16, 2025
e8c0fa2
Merge branch 'develop' into feature/artehbb
codingPF Nov 16, 2025
6a5e584
Merge Mlib
codingPF Nov 16, 2025
1f6165b
typo
codingPF Nov 17, 2025
ff4ffb9
Merge pull request #1101 from mediathekview/feature/artehbb
codingPF Nov 22, 2025
182c822
removed crawlerApiParams
codingPF Nov 23, 2025
1a9786c
backport fix for website url to dev
codingPF Nov 30, 2025
dbd05d6
fix missing query
pidoubleyou Nov 30, 2025
19f9015
change arte crawler to broadcastbegin
codingPF Dec 1, 2025
63a274f
fix website url, schedule, paging
codingPF Dec 1, 2025
eb46578
change arte crawler to broadcastbegin
codingPF Dec 1, 2025
e6f1aa7
Merge pull request #1104 from mediathekview/feature/SRFfixes
codingPF Dec 1, 2025
403be84
SRF and ARTE config update
codingPF Dec 1, 2025
98a537b
handle null elements
pidoubleyou Dec 7, 2025
97b04a5
update FieldModifier and keyword
codingPF Dec 19, 2025
0013139
ARD Grouping Structure test
codingPF Dec 20, 2025
d829e47
init 2.0
codingPF Dec 23, 2025
12627e2
init 2.0 dependency
codingPF Dec 23, 2025
c939829
update datasource and config
codingPF Dec 23, 2025
14891e4
update
codingPF Dec 29, 2025
243e12c
update zdf junit
codingPF Dec 30, 2025
474b45b
Update last seen logic
codingPF Jan 2, 2026
8bb41f7
update filter logic and av. check
codingPF Jan 2, 2026
f84cc5a
fix db retrieve and add more logging
codingPF Jan 3, 2026
433605b
move logic for daysToCrawl into util method
codingPF Jan 5, 2026
8857f33
remove livestream from diff list
codingPF Jan 5, 2026
0faabee
fix availability check
codingPF Jan 5, 2026
b6da2c9
add column
codingPF Jan 5, 2026
3e4f8f8
handle null
pidoubleyou Jan 6, 2026
a1aae86
fix null pointer
pidoubleyou Jan 6, 2026
45c8d35
DB config via yaml, move atomic filmlist, backwards compatibility
codingPF Jan 9, 2026
582ca85
zdf partner2sender, ard generate urls, checkUrlAv
codingPF Jan 23, 2026
b0d7936
Merge branch 'feature/ArdGroupStructure' into develop3
codingPF Jan 24, 2026
75f36a5
Merge branch 'feature/ArdGroupStructure' into develop3
codingPF Jan 25, 2026
7b2199e
update ard crawler
codingPF Jan 25, 2026
cad68da
add more url sources #1123
codingPF Feb 14, 2026
81e7884
remove stacktrace from srf website url rebuild, limit number of films
codingPF Feb 16, 2026
bc19de5
typo
codingPF Feb 16, 2026
e659c60
http 429 in jsonresttask
codingPF Feb 20, 2026
3b0398f
kika geo, dw old resolutions, ard fix typo, testcase and remove related
codingPF Feb 21, 2026
942fe94
#1122 remove funk from day-search
pidoubleyou Feb 25, 2026
67a478b
SR: fix missing host in videoUrl
pidoubleyou Feb 25, 2026
a94230a
Merge branch 'develop' into develop2
pidoubleyou Mar 1, 2026
129e281
add ratelimiter, cleanup comments, fix ard test, DW backwards compat fix
codingPF Mar 14, 2026
254927a
update ndr geo guessing
pidoubleyou Apr 13, 2026
e870c5d
#1134 parse geo blocking
pidoubleyou Apr 13, 2026
6a10141
#1113 handle special character
pidoubleyou Apr 26, 2026
00aec69
Merge pull request #1128 from mediathekview/develop2
codingPF Apr 28, 2026
46a5f41
- do not simply cut off description texts but shorten them with a 10%…
derreisende77 May 4, 2026
0b1ac40
- fix ARD and Phoenix description tests
derreisende77 May 4, 2026
1a30187
- fix Srf description tests
derreisende77 May 4, 2026
afb6739
- fix Ard description tests
derreisende77 May 4, 2026
2822799
- fix Orf description tests
derreisende77 May 4, 2026
6367318
#1140 search compilations on topic page
pidoubleyou May 8, 2026
53f60be
Merge pull request #1143 from mediathekview/feature/1140
pidoubleyou May 10, 2026
7c8ddc0
#1144 adaptive ov urls
pidoubleyou May 10, 2026
1b58ad8
#1144 convert m3u8 to mp4-urls
pidoubleyou May 10, 2026
424fd75
Merge pull request #1141 from derreisende77/develop
pidoubleyou May 15, 2026
112253f
fix test
pidoubleyou May 15, 2026
2c367d2
Tagesschau vor 20 Jahren (#1146)
pidoubleyou May 21, 2026
85620c9
migrate to junit5
pidoubleyou May 21, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
1 change: 1 addition & 0 deletions .gitattributes
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
src/test/resources/* linguist-vendored
52 changes: 52 additions & 0 deletions .github/workflows/develop-pre-release.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,52 @@
name: Develop Pre-Release
on:
push:
branches:
- "develop"

jobs:
develop-pre-release:
runs-on: ubuntu-latest

steps:
- uses: actions/checkout@v2
- name: Set up JDK 21
uses: actions/setup-java@v1
with:
java-version: 21
java-package: jdk+fx
- name: Cache local Maven repository
uses: actions/cache@v4
with:
path: ~/.m2/repository
key: ${{ runner.os }}-maven-${{ hashFiles('**/pom.xml') }}
restore-keys: |
${{ runner.os }}-maven-
- name: Build and test
run: ./mvnw -B package docker:build -P docker

- name: SonarCloud Scan
run: ./mvnw -B org.jacoco:jacoco-maven-plugin:prepare-agent sonar:sonar -Dsonar.projectKey=mediathekview_MServer -Dsonar.organization=mediathekview -Dsonar.host.url=https://sonarcloud.io -Dsonar.login=$SONAR_TOKEN
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
SONAR_TOKEN: ${{ secrets.SONAR_TOKEN }}

- name: Publish docker container
run: ./mvnw -B docker:push -P docker -DskipTests -Ddocker.username=$DOCKER_USERNAME -Ddocker.password=$DOCKER_PASSWORD
env:
DOCKER_USERNAME: ${{ secrets.DOCKER_USERNAME }}
DOCKER_PASSWORD: ${{ secrets.DOCKER_PASSWORD }}

- name: Publish GitHub pre-Release
uses: marvinpinto/action-automatic-releases@latest
with:
repo_token: "${{ secrets.GITHUB_TOKEN }}"
automatic_release_tag: "latest-develop"
prerelease: true
title: "Development Build"
files: |
LICENSE.md
target/*.jar
target/*.tar.*
target/*.zip
target/classes/THIRD-PARTY.txt
30 changes: 30 additions & 0 deletions .github/workflows/maven.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
name: Build and test develop

on: [ push,pull_request ]

jobs:
build:

runs-on: ubuntu-latest

steps:
- uses: actions/checkout@v2
- name: Set up JDK 21
uses: actions/setup-java@v1
with:
java-version: 21
java-package: jdk+fx
- name: Cache local Maven repository
uses: actions/cache@v4
with:
path: ~/.m2/repository
key: ${{ runner.os }}-maven-${{ hashFiles('**/pom.xml') }}
restore-keys: |
${{ runner.os }}-maven-
- name: Build and test with Maven
run: ./mvnw -B clean verify
- name: SonarCloud Scan
run: ./mvnw -B sonar:sonar -Dsonar.projectKey=mediathekview_MServer -Dsonar.organization=mediathekview -Dsonar.host.url=https://sonarcloud.io -Dsonar.login=$SONAR_TOKEN -Dsonar.coverage.jacoco.xmlReportPaths=target/site/jacoco/jacoco.xml -Dsonar.junit.reportPaths=target/surefire-reports
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
SONAR_TOKEN: ${{ secrets.SONAR_TOKEN }}
10 changes: 8 additions & 2 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -15,10 +15,16 @@ start*.sh
.classpath
.project
.settings/

*.iml
.idea
out/
build/

/src/main/resources/version.properties
version.properties
RepoZugang.properties

/logs/

logs/
/target/
/.checkstyle
Binary file added .mvn/wrapper/maven-wrapper.jar
Binary file not shown.
18 changes: 18 additions & 0 deletions .mvn/wrapper/maven-wrapper.properties
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
# Licensed to the Apache Software Foundation (ASF) under one
# or more contributor license agreements. See the NOTICE file
# distributed with this work for additional information
# regarding copyright ownership. The ASF licenses this file
# to you under the Apache License, Version 2.0 (the
# "License"); you may not use this file except in compliance
# with the License. You may obtain a copy of the License at
#
# https://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing,
# software distributed under the License is distributed on an
# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
# KIND, either express or implied. See the License for the
# specific language governing permissions and limitations
# under the License.
distributionUrl=https://repo.maven.apache.org/maven2/org/apache/maven/apache-maven/3.6.3/apache-maven-3.6.3-bin.zip
wrapperUrl=https://repo.maven.apache.org/maven2/org/apache/maven/wrapper/maven-wrapper/3.1.1/maven-wrapper-3.1.1.jar
49 changes: 0 additions & 49 deletions .travis.yml

This file was deleted.

93 changes: 93 additions & 0 deletions ARCHITECTURE_OVERVIEW.adoc
Original file line number Diff line number Diff line change
@@ -0,0 +1,93 @@
= Architecture Overview
:toc: macro

MServer is a free open-source software that crawls the media libraries of the German-speaking public broadcasters and prepares them as a machine-readable list for clients such as https://github.com/mediathekview/MediathekView[MediathekView].

toc::[]

== Context

image:docs/architecture/images/System_Context.svg[System context]

A simplified overview of the MediathekView system context.

=== Administrator (user)

The only real user of MServer is the administrator who configures and runs it.

=== Public broadcaster media libraries (external system)

Each public broadcaster media library is an own external system and needs its own crawler.
For some media libraries, no API exists, in which case the website itself is examined.

=== MediathekView (external system)

https://github.com/mediathekview/MediathekView[MediathekView] is the main supported client in the form of a desktop application.

=== MediathekViewWeb (external system)

https://github.com/mediathekview/MediathekViewWeb[MediathekViewWeb] is the second most important client in the form of a web application.

=== Other clients (external system)

Other clients like https://github.com/mediathekview/zapp[Zapp]
, https://github.com/mediathekview/plugin.video.mediathekview[MediathekView Kodi Plugin] and other, often unknown, clients.

== Quality Goals

[cols="<,>"]
|===
|Quality Goal |Motivation/description

|Easy to configure and operate (Configurability) |For the administrator, it is very easy and quick to configure and operate MServer
|Good performance (Efficiency) |The application runs very fast and uses the system resources as good as possible
|Machine-readable output (Interoperability) |Results are machine-readable and easy for clients to consume
|Good maintainability |It's easy to change and adapt to the changes in the media libraries
|Good reliability |It doesn't crash despite errors, but continues to run until its task is completed
|===

== Solution Strategy

[cols="<,>"]
|===
|Quality Goal |Matching approaches in the solution

|Easy to configure and operate (Configurability) a|
* A YAML configuration file for the entire application with overridable default values and comments in the configuration
* Packaged as executable JAR and Docker container
|Good performance (Efficiency) |Using the Java Fork/Join framework to run all crawlers at the same time and divide up their work
|Machine-readable output (Interoperability) |The results can be saved as a normal JSON file or as the custom JSON-like legacy format used by the old server
|Good maintainability a|
* Each media library has its own crawler which is stored in its own package
* The Java version and dependencies are kept up to date
* Clean code is emphasized and checked via SonarQube
* Every change is reviewed via a code review

|Good reliability |All exceptions are handled and none are passed through to the outside
|===

== Architectural Overview Diagram

image:docs/architecture/images/Architectural_Overview.svg[Architectural Overview]

An informal architecture overview diagram for MServer

=== YAML Configuration

How many threads are allowed to use, which crawlers should run and crawler configurations are set in the YAML configuration of MServer.

=== Yacl4J

A library to read the YAML configuration as objects.

=== Crawler Manager

Starts all configured crawlers, collects the results and start the filmlist writing.

=== AbstractCrawler

Contains basic logic needed in every crawler like the work splitting.

=== Crawler

The heart of MServer crawlers for the public broadcaster media libraries.
70 changes: 70 additions & 0 deletions CODE_OF_CONDUCT.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,70 @@
# Code of Conduct - MediathekView

## Our Pledge

In the interest of fostering an open and welcoming environment, we as
contributors and maintainers pledge to make participation in our project and
our community a harassment-free experience for everyone, regardless of age, body
size, disability, ethnicity, sex characteristics, gender identity and expression,
level of experience, education, socio-economic status, nationality, personal
appearance, race, religion, or sexual identity and orientation.

## Our Standards

Examples of behavior that contributes to a positive environment for our
community include:

* Demonstrating empathy and kindness toward other people
* Being respectful of differing opinions, viewpoints, and experiences
* Giving and gracefully accepting constructive feedback
* Accepting responsibility and apologizing to those affected by our mistakes,
and learning from the experience
* Focusing on what is best not just for us as individuals, but for the
overall community

Examples of unacceptable behavior include:

* The use of sexualized language or imagery, and sexual attention or
advances
* Trolling, insulting or derogatory comments, and personal or political attacks
* Public or private harassment
* Publishing others' private information, such as a physical or email
address, without their explicit permission
* Other conduct which could reasonably be considered inappropriate in a
professional setting

## Our Responsibilities

Project maintainers are responsible for clarifying and enforcing our standards of
acceptable behavior and will take appropriate and fair corrective action in
response to any instances of unacceptable behavior.

Project maintainers have the right and responsibility to remove, edit, or reject
comments, commits, code, wiki edits, issues, and other contributions that are
not aligned to this Code of Conduct, or to ban
temporarily or permanently any contributor for other behaviors that they deem
inappropriate, threatening, offensive, or harmful.

## Scope

This Code of Conduct applies within all community spaces, and also applies when
an individual is officially representing the community in public spaces.
Examples of representing our community include using an official e-mail address,
posting via an official social media account, or acting as an appointed
representative at an online or offline event.

## Enforcement

Instances of abusive, harassing, or otherwise unacceptable behavior may be
reported to the community leaders responsible for enforcement at <info@mediathekview.de>.
All complaints will be reviewed and investigated promptly and fairly.

All community leaders are obligated to respect the privacy and security of the
reporter of any incident.

## Attribution

This Code of Conduct is adapted from the [Contributor Covenant](https://contributor-covenant.org/), version
[1.4](https://www.contributor-covenant.org/version/1/4/code-of-conduct/code_of_conduct.md) and
[2.0](https://www.contributor-covenant.org/version/2/0/code_of_conduct/code_of_conduct.md),
and was generated by [contributing-gen](https://github.com/bttger/contributing-gen).
Loading
Loading