ウェブブラウザ・Vivaldi の Webパネルのユーザエージェントを書き換えるシェルスクリプト。
Mac OS Xで動作します。(Ubuntu版はこちら)
#!/bin/bash # change userAgent of Vivaldi WebPanel on Mac OS X # last modified at 2015-12-01 # more detail -> http://freefielder.jp/lab/vivaldi/macos.php # Original userAgent string S="Linux; Android [0-9]+\\.[0-9]+\\.[0-9]+" # replace to R="iPhone; CPU iPhone OS 9_1 like Mac OS X" # find path for bundle.js BDL_DIR='/Vivaldi Framework.framework/Resources/vivaldi/bundle.js' IFS_BAK=$IFS IFS=$'\n' VIV_DIR=($(mdfind 'kMDItemFSName = "Vivaldi*.app"')) IFS=$IFS_BAK NUM_OF_DIR=${#VIV_DIR[*]} if [ $NUM_OF_DIR -eq 0 ]; then echo;echo 'Vivaldi not found.' echo 'Input Vivaldi.app location : e.g. /Applications/Vivaldi.app' echo ' or press only [Enter] to quit.' printf '>> ' read VIV_DIR NUM_OF_DIR=1 N=1 exit 0 elif [ $NUM_OF_DIR -ge 2 ]; then echo;echo ${NUM_OF_DIR}' Vivaldies are found. Choose one and input the number.' N=1 for obj in "${VIV_DIR[@]}"; do echo $N') '${VIV_DIR[`expr $N - 1`]} N=`expr $N + 1` done printf ">> " read N # expr $N + 1 >/dev/null 2>&1 if [ $? -ge 2 ]; then echo "bad input." exit 0 fi # else N=1 fi if [ $N -le ${NUM_OF_DIR} ]; then NN=`expr $N - 1` # echo ${VIV_DIR[${NN}]} VIV="${VIV_DIR[${NN}]}"'/Contents/Versions/' else echo 'bad input.' exit 0 fi IFS_BAK=$IFS IFS=$'\n' VER_NO=($(ls ${VIV})) IFS=$IFS_BAK # version number NUM_OF_DIR=${#VER_NO[*]} BNDL="${VIV}${VER_NO[$NUM_OF_DIR - 1]}${BDL_DIR}" if [ -z "$BNDL" ] || ! [ -e "$BNDL" ] || [ -d "$BNDL" ] ; then echo echo 'file not found' echo 'Input bundle.js location : e.g. /Applications/Vivaldi.app/Contents/Versions/1.0.303.52/Vivaldi\ Framework.framework/Resources/vivaldi/bundle.js' echo ' or press only [Enter] to quit.' printf '>> ' read BNDL fi if [ -z "$BNDL" ] ; then exit 0 fi echo echo "File location : ""$BNDL" echo '>> Continue ? : Y or N' read CONTFLAG if ! [ -z $CONTFLAG ] && [ $CONTFLAG = 'Y' -o $CONTFLAG = 'y' ] ; then if ! [ -e "$BNDL" ] || [ -d "$BNDL" ]; then echo echo 'file not exist' exit 0 fi else echo;echo 'exit' exit 0 fi SS=$(cat "${BNDL}" | awk 'match($0,/'"${S}"'/){print substr($0,RSTART,RLENGTH)}') if [ -z "$SS" ] ; then echo;echo 'UserAgent might be ALREADY changed.' echo 'exit' exit 0 fi # create backup file as 'bundle.js.bkup{timestamp}' in the same place with this script. SHDIR="$(cd $(dirname $0) && pwd)" TIMESTAMP=`date '+%Y%m%d%H%M'` BKUP="${SHDIR}/bundle.js.bkup${TIMESTAMP}" cp "${BNDL}" "${BKUP}" sed "s/$SS/$R/" "$BKUP" > "$BNDL" echo echo 'UserAgent of WebPanel changed.' echo 'backup file : '$BKUP
→ vivaldiWebPanelUA_MacOSX.sh.zip
スクリプトが、インストールされている Vivaldi の場所を自動的に探し出し、bundle.js を書き換えます。
注)Vivaldi を新規インストール / 更新した場合は、このスクリプトを走らせる前に、必ずいちど Vivaldi を 起動 → 終了 させてください。OSのセキュリティの関係で、初起動前にアプリケーションファイルが書き換えられると、以下のようなアラートが出ます。
通常は "Y(続行)" で大丈夫な筈です。
Webパネルから以下の URL にアクセスすると、現在のユーザエージェント文字列を確認できます。
→ http://freefielder.jp/lab/ua_checker/