A simple website to get the best episodes of favorite TV series. It may be helpful if you want to watch series with completely standalone episodes like "Black Mirror" as well as refresh some of the favorites series and save time.
It's publicly available at https://soap.nikscorp.com. You also can host your instance by building/pulling the image or building binary from sources. Note that frontend statics included in the Docker image and hosted by the application itself.
You can use frontend based version https://soap.nikscorp.com or use json api directly. There are only 2 methods:
GET /search/{query} to search id of series[
{
"imdbID": "tt2085059",
"imdbRating": "",
"poster": "https://m.media-amazon.com/images/M/MV5BYTM3YWVhMDMtNjczMy00NGEyLWJhZDctYjNhMTRkNDE0ZTI1XkEyXkFqcGdeQXVyMTkxNjUyNQ@@._V1_SX300.jpg",
"title": "Black Mirror",
"year": "2011\u2013"
},
...
]
GET /id/{id} to get the best episodes by id{
"Episodes": [
{
"Episode": "2",
"Season": "1",
"Title": "Fifteen Million Merits",
"floatRating": 8.1,
"imdbRating": "8.1"
},
...
],
"Poster": "https://m.media-amazon.com/images/M/MV5BYTM3YWVhMDMtNjczMy00NGEyLWJhZDctYjNhMTRkNDE0ZTI1XkEyXkFqcGdeQXVyMTkxNjUyNQ@@._V1_SX300.jpg",
"Title": "Black Mirror"
}
To host your instance of app you follow these instructions. To use any option you need to obtain OMDB API Key (free).
docker-compose.yml and etc/redis.conf.sampleetc/redis.conf.sample to smth strong and rename file to etc/redis.confdocker-compose.yml like listen IP/port and logging.docker-compose pullAPI_KEY to your OMDB API KEYREDIS_PASSWD to your Redis passworddocker-compose up -dThe same steps, but instead of step 4 run docker-compose build
Follow the logic described in Dockerfile
As OMDB API is quite slow and has some request restrictions, I use Redis for caching the responses. Max cache size is 100Mb and configurable in etc/redis.conf. Caching time is a week for now and not configurable as it seems to be the best candidate for the average time of new episode arrival.
I did this project as a task for my Cloud Computing course with requirements to provide basic HA configuration for Docker Swarm mode.
You can try this configuration by these steps:
docker node update --label-add com.soap.role=db_node <your node>docker stack deploy -c docker-compose.yml soapConsider changing the count of the replicas.
Content type
Image
Digest
Size
10.5 MB
Last updated
over 6 years ago
docker pull nikscorp/soap