@@ -10,36 +10,33 @@ make_request() {
1010 fi
1111}
1212
13- # Get the ball (and id counters rolling) with some simple entities..
14- make_request " new=item" " data={}"
15- make_request " new=property" " data={\" datatype\" :\" string\" ,\" labels\" :{\" en\" :{\" language\" :\" en\" ,\" value\" :\" $( sed " s/[^a-zA-Z0-9]//g" <<< $( openssl rand -base64 30) )\" }}}"
13+ ENTITY_GROUP=${ENTITY_GROUP:- 1}
14+ # die if it isnt 1
15+ if [ $ENTITY_GROUP -ne 1 ]; then
16+ echo " ENTITY_GROUP must be 1"
17+ exit 1
18+ fi
1619
17- # Then do the bulk of the stuff
20+ # Get entity count, default to 2000 if not set
21+ ENTITY_COUNT=${ENTITY_COUNT:- 2000}
22+ # Calculate half for each batch (string items and item references)
23+ HALF_COUNT=$(( ENTITY_COUNT / 2 ))
1824
19- # Create some properties
20- # P2 = wikibase-item
21- # P3 = wikibase-property
22- # P4 = string
23- # P5 = time
24- properties=( wikibase-item wikibase-property string time )
25- for p in " ${properties[@]} "
26- do
27- make_request " new=property" " data={\" datatype\" :\" ${p} \" ,\" labels\" :{\" en\" :{\" language\" :\" en\" ,\" value\" :\" $( sed " s/[^a-zA-Z0-9]//g" <<< $( openssl rand -base64 30) )\" }}}"
28- done
25+ echo " Creating $ENTITY_COUNT entities ($HALF_COUNT each type)"
2926
3027# Create some items including statements
3128
32- # 2500 with strings
33- for i in {1..2500}
29+ # Half with strings
30+ for i in $( seq 1 $HALF_COUNT )
3431do
3532 (
3633 make_request " new=item" " data={\" labels\" :{\" en\" :{\" language\" :\" en\" ,\" value\" :\" $( sed " s/[^a-zA-Z0-9]//g" <<< $( openssl rand -base64 30) )\" }},\" descriptions\" :{\" en\" :{\" language\" :\" en\" ,\" value\" :\" $( sed " s/[^a-zA-Z0-9]//g" <<< $( openssl rand -base64 30) )\" }},\" aliases\" :{\" en\" :[{\" language\" :\" en\" ,\" value\" :\" $( sed " s/[^a-zA-Z0-9]//g" <<< $( openssl rand -base64 30) )\" }]},\" claims\" :{\" P4\" :[{\" mainsnak\" :{\" snaktype\" :\" value\" ,\" property\" :\" P4\" ,\" datavalue\" :{\" value\" :\" statement-string-value\" ,\" type\" :\" string\" },\" datatype\" :\" string\" },\" type\" :\" statement\" ,\" rank\" :\" normal\" }]}}"
3734 )&
3835 if (( $(wc - w <<< $(jobs - p)) % $ASYNC == 0 )); then sleep 0.5; fi
3936done
4037
41- # 2500 linking to other items
42- for i in {1..2500}
38+ # Half linking to other items
39+ for i in $( seq 1 $HALF_COUNT )
4340do
4441 (
4542 make_request " new=item" " data={\" labels\" :{\" en\" :{\" language\" :\" en\" ,\" value\" :\" $( sed " s/[^a-zA-Z0-9]//g" <<< $( openssl rand -base64 30) )\" }},\" descriptions\" :{\" en\" :{\" language\" :\" en\" ,\" value\" :\" $( sed " s/[^a-zA-Z0-9]//g" <<< $( openssl rand -base64 30) )\" }},\" aliases\" :{\" en\" :[{\" language\" :\" en\" ,\" value\" :\" $( sed " s/[^a-zA-Z0-9]//g" <<< $( openssl rand -base64 30) )\" }]},\" claims\" :{\" P2\" :[{\" mainsnak\" :{\" snaktype\" :\" value\" ,\" property\" :\" P2\" ,\" datavalue\" :{\" value\" :{\" entity-type\" :\" item\" ,\" numeric-id\" :1,\" id\" :\" Q1\" },\" type\" :\" wikibase-entityid\" },\" datatype\" :\" wikibase-item\" },\" type\" :\" statement\" ,\" rank\" :\" normal\" }]}}"
0 commit comments