2
2
3
3
if test -z $1
4
4
then
5
- echo ' Please provide a integer as first argument'
5
+ echo ' Please provide a movie ID string as first argument'
6
6
exit 1
7
7
fi
8
8
18
18
movieJson=$( curl -s " https://www.wikidata.org/wiki/Special:EntityData/$1 .json" )
19
19
20
20
21
- instanceOf=$( echo $movieJson | jq -r " .entities.$1 .claims.P31[0].mainsnak.datavalue.value.id" )
21
+ instanceOf=$( echo " $movieJson " | jq -r " .entities.$1 .claims.P31[0].mainsnak.datavalue.value.id" )
22
22
23
23
24
24
# Q11424 film
31
31
exit 1
32
32
fi
33
33
34
-
35
- pageId=$( echo $movieJson | jq " .entities.$1 .pageid // \"\" " )
36
- movieLabelFr=$( echo $movieJson | jq -r " .entities.$1 .labels.fr.value" )
37
- originalTitle=$( echo $movieJson | jq -r " .entities.$1 .claims.P1476[0].mainsnak.datavalue.value.text // \"\" " )
38
- frWiki=$( echo $movieJson | jq -r " .entities.$1 .sitelinks.frwiki.url // \"\" " )
39
- date=$( echo $movieJson | jq -r " .entities.$1 .claims.P577[0].mainsnak.datavalue.value.time // \"\" " )
40
- imdb=$( echo $movieJson | jq -r " .entities.$1 .claims.P345[0].mainsnak.datavalue.value // \"\" " )
41
- tmdb=$( echo $movieJson | jq -r " .entities.$1 .claims.P4947[0].mainsnak.datavalue.value // \"\" " )
34
+ # Fetch main datas
35
+ #
36
+ # `// \"\"` This strange syntax allow to output an empty string if key do not exist or value is null
37
+ movieLabelFr=$( echo " $movieJson " | jq -r " .entities.$1 .labels.fr.value // \"\" " )
38
+ originalTitle=$( echo " $movieJson " | jq -r " .entities.$1 .claims.P1476[0].mainsnak.datavalue.value.text // \"\" " )
39
+ frWiki=$( echo " $movieJson " | jq -r " .entities.$1 .sitelinks.frwiki.url // \"\" " )
40
+ date=$( echo " $movieJson " | jq -r " .entities.$1 .claims.P577[0].mainsnak.datavalue.value.time // \"\" " )
41
+ imdb=$( echo " $movieJson " | jq -r " .entities.$1 .claims.P345[0].mainsnak.datavalue.value // \"\" " )
42
+ tmdb=$( echo " $movieJson " | jq -r " .entities.$1 .claims.P4947[0].mainsnak.datavalue.value // \"\" " )
42
43
43
44
44
45
# Get IDs that we will use to do some other requests
45
- directorIds=$( echo $movieJson | jq -r " .entities.$1 .claims.P57[].mainsnak.datavalue.value.id // \"\" " )
46
- dopId=$( echo $movieJson | jq -r " .entities.$1 .claims.P344[0].mainsnak.datavalue.value.id // \"\" " )
46
+ directorIds=$( echo " $movieJson " | jq -r " .entities.$1 .claims.P57[].mainsnak.datavalue.value.id // \"\" " )
47
+ dopId=$( echo " $movieJson " | jq -r " .entities.$1 .claims.P344[0].mainsnak.datavalue.value.id // \"\" " )
47
48
48
49
49
50
# Original title, directors and release year are mandatory
@@ -63,7 +64,7 @@ directors=()
63
64
for directorId in " ${directorIds[@]} "
64
65
do
65
66
directorJson=$( curl -s " https://www.wikidata.org/wiki/Special:EntityData/$directorId .json" )
66
- directorLabelFr=$( echo $directorJson | jq -r " .entities.$directorId .labels.fr.value" )
67
+ directorLabelFr=$( echo " $directorJson " | jq -r " .entities.$directorId .labels.fr.value" )
67
68
directors+=(" $directorLabelFr " )
68
69
done
69
70
@@ -74,7 +75,7 @@ directorsJson=$(jq --compact-output --null-input '$ARGS.positional' --args -- "$
74
75
if test -n " $dopId "
75
76
then
76
77
dopJson=$( curl -s " https://www.wikidata.org/wiki/Special:EntityData/$dopId .json" )
77
- dopLabelFr=$( echo $dopJson | jq -r " .entities.$dopId .labels.fr.value" )
78
+ dopLabelFr=$( echo " $dopJson " | jq -r " .entities.$dopId .labels.fr.value // \"\" " )
78
79
else
79
80
dopLabelFr=' '
80
81
fi
0 commit comments