updates/doc/fixes for formfiller script from Sylvester Johansson
[uzbl-mobile] / examples / scripts / formfiller.sh
1 #!/bin/bash
2
3 # simple login form filler for uzbl.
4 # put the form entry values you want to add (eg login information) in the file $keydir/<domain>
5 # in the format <fieldname>: <value>
6 # (these files can be automatically created for you by setting editor and triggering this script on a site without a config)
7
8 [ -d /usr/share/uzbl/examples/data/forms  ] && keydir=/usr/share/uzbl/examples/data/forms  # you will probably get permission denied errors here.
9 [ -d $XDG_DATA_HOME/uzbl/forms            ] && keydir=$XDG_DATA_HOME/uzbl/forms
10 [ -d ./examples/data/forms                ] && keydir=./examples/data/forms #useful when developing
11 [ -z "$keydir" ] && exit 1
12
13 #editor=gvim
14 editor='urxvt -e vim'
15
16 config=$1; shift
17 pid=$1;    shift
18 xid=$1;    shift
19 fifo=$1;   shift
20 socket=$1; shift
21 url=$1;    shift
22 title=$1;  shift
23
24 [ -d $keydir ] || mkdir $keydir || exit 1
25
26 domain=$(echo $url | sed -re 's|(http\|https)+://([A-Za-z0-9\.]+)/.*|\2|')
27 if [[ -e $keydir/$domain ]]; then
28         gawk -F': ' '{ print "act js document.getElementsByName(\"" $1 "\")[0].value = \"" $2 "\";"}' $keydir/$domain >> $fifo
29 else
30         curl "$url" | grep '<input' | sed -nre 's|.*<input.*?name="([[:graph:]]+)".*?/>.*|\1: |p' > $keydir/$domain
31         $editor $keydir/$domain
32 fi