見出し画像

Microsoft Rewardsのポイント加算方法が変わった

せっかく自動化方法も書いたのに、記事の反響が大きかったのかリンク先のようにURLに検索キーワードを埋め込んでBingを開くやり方ではポイントが加算されなくなってしまった。

手で検索するように、Bingのページからキーワードを入れないといけない。モバイルはまだ加算される。なので、PC用修正版を公開してみる。
キーボードエミュレーションはズッコケ率が高いのでできるだけやりたくなかったが、仕方ない。やるとなったらタブが増えて重くなる問題もキー操作で一気に解決してみた。

@set args=%*
@powershell "iex((@('')*3+(cat '%~f0'|select -skip 3))-join[char]10)"
@exit /b %ERRORLEVEL%

$client = New-Object System.Net.WebClient
$client.Encoding = [System.Text.Encoding]::UTF8

$countries = @('IT', 'IN', 'SG')

foreach ($country in $countries){
$content1 = $client.DownloadString("https://trends.google.co.jp/trends/trendingsearches/daily/rss?geo=$country")
$data1 = [xml]$content1
$data = $data + $data1.rss.channel.item.title
}
$content2 = $client.DownloadString("https://trends.google.co.jp/trends/hottrends/atom/hourly")
$data2 = [xml]$content2
$data = $data + $data2.rss.channel.item.title

$data = $data | Sort-Object -Unique
$data

start microsoft-edge:"https://www.bing.com"
Add-Type -AssemblyName System.Windows.Forms
add-type -assembly microsoft.visualbasic

ForEach ($msg in $data){
Start-Sleep -s 3
[microsoft.visualbasic.interaction]::AppActivate("Edge")
[System.Windows.Forms.SendKeys]::SendWait("$msg{ENTER}")
Start-Sleep -s 10
[microsoft.visualbasic.interaction]::AppActivate("Edge")
[System.Windows.Forms.SendKeys]::SendWait("^lhttps://www.bing.com{ENTER}")
}

Stop-Process -Name msedge
rv data


  • キーワードを取ってくる国が変わってるのは気まぐれ。

  • autopoint.batとかで保存してそのまま起動できる(ps1とかで保存すると起動が面倒)のはそのまま→タスクスケジューラに入れやすい

  • 楽天は割が合わないので削除(要はBANされた)

  • 他のブラウザでやりたければmicrosoft-edgeを他のブラウザの""付きフルパスに、"edge"の部分をそのブラウザを開いたときのウィンドウタイトルの末尾(変わらない文字列)にすればOK。Chromeなら"Chrome"。大抵はそのブラウザの名前。

23/11/14追記:上記のコードは日本語モード(IMEがON)だと勝手に変換されてイマイチだったのでクリップボードからの貼り付けに変更

@set args=%*
@powershell "iex((@('')*3+(cat '%~f0'|select -skip 3))-join[char]10)"
@exit /b %ERRORLEVEL% #4行目以降のPowershellをバッチで動かすときのおまじない 

$client = New-Object System.Net.WebClient
$client.Encoding = [System.Text.Encoding]::UTF8

$countrylist = @("IE","US","AR","GB","IL","IT","IN","ID","UA","EG","AU","AT","NL","CA","GR","KE","CO","SA","SG","CH","SE","ES","TH","CZ","CL","DK","DE","TR","NG","NZ","NO","HU","PH","FI","BR","FR","VN","PE","BE","PL","PT","MY","MX","RO","RU","KR","HK","TW","ZA","JP") #キーワードを取って来たい国コードリストをカンマ区切りで 

$i = (([int](Get-Date -Format "dd")-1)*3)
$countries = @($countrylist[$i%$countrylist.Length],$countrylist[($i+1)%$countrylist.Length],$countrylist[($i+2)%$countrylist.Length]) #毎日3カ国ずつ重ならないように設定 

foreach ($country in $countries){
$content1 = $client.DownloadString("https://trends.google.co.jp/trends/trendingsearches/daily/rss?geo=$country")
$data1 = [xml]$content1
$data = $data + $data1.rss.channel.item.title
}
$content2 = $client.DownloadString("https://trends.google.co.jp/trends/hottrends/atom/hourly") #USだけ 
$data2 = [xml]$content2
$data = $data + $data2.rss.channel.item.title

$data = $data | Sort-Object -Unique #ダブってるキーワードを排除 
$data #キーワードリストを表示 

start microsoft-edge:"https://www.bing.com"
Add-Type -AssemblyName System.Windows.Forms
add-type -assembly microsoft.visualbasic

ForEach ($msg in $data){
Start-Sleep -s 3
[microsoft.visualbasic.interaction]::AppActivate("Edge") #フォーカスをEdgeに 
Set-Clipboard -Value $msg
[System.Windows.Forms.SendKeys]::SendWait("^v{ENTER}") #クリップボードにコピーしたキーワードを貼り付けてEnter 
Start-Sleep -s 5
[microsoft.visualbasic.interaction]::AppActivate("Edge")
Set-Clipboard -Value "https://www.bing.com"
[System.Windows.Forms.SendKeys]::SendWait("^l^v{ENTER}") #同じウィンドウでBing検索に戻る 
}

Stop-Process -Name msedge
rv data



23/12/01 追記
Edgeボーナスがなくなって、検索だけだと一日150ポイントになってしまった。しかも検索の間を空けないといけないっぽい。Start-Sleepの値を増やせばいいけど、入力待ちのままになってるので意図しない入力が行われる可能性が増えちゃうのであまりやりたくないなー。

23/12/14 追記
連続検索にメスが入ったようで、3-4回検索すると15分開けなければならないそうな。sleepで15分も待つと重いので、スマホともにスケジューラでやったほうがいいけど、だんだんやる価値がなくなってきたかもです。先月の宝くじがピークかも。

23/12/17 追記
5250ポイントからだが、楽天ポイントに交換できるようになってる!いつまでかわからないけど。早期終了はありえるので、今のうちに交換交換。

この記事が気に入ったらサポートをしてみませんか?