docs: create readme
parent
911359b6fc
commit
c02d8e1bc8
|
@ -1,6 +1,9 @@
|
||||||
name: CI
|
name: CI
|
||||||
|
|
||||||
on:
|
on:
|
||||||
|
push:
|
||||||
|
branches:
|
||||||
|
- main
|
||||||
workflow_dispatch:
|
workflow_dispatch:
|
||||||
|
|
||||||
jobs:
|
jobs:
|
||||||
|
|
|
@ -1,6 +1,9 @@
|
||||||
name: Test
|
name: Test
|
||||||
|
|
||||||
on:
|
on:
|
||||||
|
push:
|
||||||
|
branches:
|
||||||
|
- main
|
||||||
workflow_dispatch:
|
workflow_dispatch:
|
||||||
|
|
||||||
jobs:
|
jobs:
|
||||||
|
|
47
README.md
47
README.md
|
@ -1,16 +1,43 @@
|
||||||
# release_schedule
|
# Release Schedule
|
||||||
|
|
||||||
A new Flutter project.
|
A small app using the Wikidata API to show upcoming movies.
|
||||||
|
|
||||||
## Getting Started
|
You can try out the live web version at [daniel-michel.github.io/release_schedule](https://daniel-michel.github.io/release_schedule).
|
||||||
|
|
||||||
This project is a starting point for a Flutter application.
|
Android and Linux builds can be found in the latest build run: [](https://github.com/daniel-michel/release_schedule/actions/workflows/build.yml)
|
||||||
|
|
||||||
A few resources to get you started if this is your first Flutter project:
|
Currently, only a simple list of upcoming movies is shown:
|
||||||
|

|
||||||
|
|
||||||
- [Lab: Write your first Flutter app](https://docs.flutter.dev/get-started/codelab)
|
The floating button at the bottom right can be used to load the upcoming movies and the button at the top right to clear the movies that where already loaded.
|
||||||
- [Cookbook: Useful Flutter samples](https://docs.flutter.dev/cookbook)
|
|
||||||
|
|
||||||
For help getting started with Flutter development, view the
|
|
||||||
[online documentation](https://docs.flutter.dev/), which offers tutorials,
|
## Wikidata API
|
||||||
samples, guidance on mobile development, and a full API reference.
|
|
||||||
|
The Implementation can be found at [./lib/api/wikidata_movie_api.dart](./lib/api/wikidata_movie_api.dart).
|
||||||
|
|
||||||
|
To get information about the upcoming movies multiple APIs are used.
|
||||||
|
|
||||||
|
First the SPARQL API is used to retrieve upcoming movies using the endpoint "https://query.wikidata.org/sparql" with the following query:
|
||||||
|
```sql
|
||||||
|
SELECT
|
||||||
|
?movie
|
||||||
|
?movieLabel
|
||||||
|
(MIN(?releaseDate) as ?minReleaseDate)
|
||||||
|
WHERE {
|
||||||
|
?movie wdt:P31 wd:Q11424; # Q11424 is the item for "film"
|
||||||
|
wdt:P577 ?releaseDate; # P577 is the "publication date" property
|
||||||
|
wdt:P1476 ?title.
|
||||||
|
FILTER (xsd:date(?releaseDate) >= xsd:date("$date"^^xsd:dateTime))
|
||||||
|
|
||||||
|
SERVICE wikibase:label { bd:serviceParam wikibase:language "en". }
|
||||||
|
}
|
||||||
|
GROUP BY ?movie ?movieLabel
|
||||||
|
ORDER BY ?minReleaseDate
|
||||||
|
LIMIT $limit
|
||||||
|
```
|
||||||
|
Where `$limit` is the maximum number of movies that are retrieved and `$date` the starting date from which movies are retrieved.
|
||||||
|
`$limit` is currently set to 100 and `$date` one week before the current one.
|
||||||
|
However, because there are multiple publication dates for most movies, the retrieved movies just need to have one publication date that is on or after `$date` for the movie to be included in the result. The `minReleaseDate` is not necessarily the release date displayed in the App, therefore some movies in the App might show up as having been released a long time ago.
|
||||||
|
|
||||||
|
To get additional information about the movies and all release dates (in case some are before `$date` and some after) the API endpoint "https://www.wikidata.org/w/api.php?action=wbgetentities" is used.
|
||||||
|
|
Binary file not shown.
After Width: | Height: | Size: 132 KiB |
Loading…
Reference in New Issue