Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #!/usr/bin/env bash
- #Needs curl
- USERNAME="Smile4ever"
- USERPASS="*******"
- WIKIAPI="https://nl.wikipedia.org/w/api.php"
- cookie_jar="wikicj"
- #Will store file in wikifile
- echo "UTF8 check: ☠"
- #################login
- echo "Logging into $WIKIAPI as $USERNAME..."
- #Login part 1
- #printf "%s" "Logging in (1/2)..."
- echo "Logging in (1/2)..."
- CR=$(curl -S \
- --location \
- --retry 2 \
- --retry-delay 5\
- --cookie $cookie_jar \
- --cookie-jar $cookie_jar \
- --user-agent "Curl Shell Script" \
- --keepalive-time 60 \
- --header "Accept-Language: en-us" \
- --header "Connection: keep-alive" \
- --compressed \
- --request "GET" "${WIKIAPI}?action=query&meta=tokens&type=login&format=json")
- echo "$CR" | jq
- rm login.json
- echo "$CR" > login.json
- TOKEN=$(jq '.query.tokens.logintoken' login.json)
- TOKEN="${TOKEN//\"/}" #replace double quote by nothing
- TOKEN="${TOKEN//\+\\/%2b%5c}" #replace +\ by %2b%5c
- TOKEN="${TOKEN//\\/}" #replace \ by nothing
- echo $TOKEN
- if [ "$TOKEN" == "null" ]; then
- echo "Login part 1 failed."
- echo $CR
- exit
- else
- echo "Logging in (1/2)...Complete"
- fi
- #Login part 2
- echo "Logging in (2/2)..."
- CR=$(curl -S \
- --location \
- --cookie $cookie_jar \
- --cookie-jar $cookie_jar \
- --user-agent "Curl Shell Script" \
- --keepalive-time 60 \
- --header "Accept-Language: en-us" \
- --header "Connection: keep-alive" \
- --compressed \
- --data-urlencode "username=${USERNAME}" \
- --data-urlencode "password=${USERPASS}" \
- --data-urlencode "rememberMe=1" \
- --data-urlencode "logintoken=${TOKEN}" \
- --data-urlencode "loginreturnurl=http://google.be" \
- --request "POST" "${WIKIAPI}?action=clientlogin&format=json")
- #TODO-Add login part 2 check
- echo "$CR" | jq
- echo "Successfully logged in as $USERNAME."
- ###############
- #Get edit token
- echo "Fetching edit token..."
- CR=$(curl -S \
- --location \
- --cookie $cookie_jar \
- --cookie-jar $cookie_jar \
- --user-agent "Curl Shell Script" \
- --keepalive-time 60 \
- --header "Accept-Language: en-us" \
- --header "Connection: keep-alive" \
- --compressed \
- --request "POST" "${WIKIAPI}?action=query&meta=tokens&format=json")
- CR2=($CR)
- echo "$CR" | jq
- EDITTOKEN=${CR2[8]}
- if [ ${#EDITTOKEN} = 34 ]; then
- echo "Edit token is: $EDITTOKEN"
- else
- echo "Edit token not set."
- echo $CR
- exit
- fi
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement