「Yahoo!天気情報」の版間の差分
ナビゲーションに移動
検索に移動
編集の要約なし |
sukemaru版を追加 |
||
| 1行目: | 1行目: | ||
Yahoo! 天気情報の地域指定 URL は、「[https://weather.yahoo.co.jp/weather/rss/ 提供RSS - Yahoo!天気・災害]」 のページで各地域のリンクURL末尾 <code>****.xml</code> の部分を調べて、マクロのコード内の URL 書き換えてください。 | |||
<br>(※ 各地域のリンク URL <code><nowiki>https://rss-weather.yahoo.co.jp/rss/days/<****>.xml</nowiki></code> の <code><nowiki>https://rss-weather</nowiki></code> を <code><nowiki>http://rss.weather</nowiki></code> に書き換えでもよい) | |||
<br><br> | |||
== kuro 版 == | |||
Yahooの天気情報を取得し、カーソル位置に挿入します。 | Yahooの天気情報を取得し、カーソル位置に挿入します。 | ||
使用前にurlの部分を任意の地域の情報に書き換えてください。 | 使用前にurlの部分を任意の地域の情報に書き換えてください。 | ||
| 26行目: | 31行目: | ||
document.selection.Text = children[j].text + "\n"; | document.selection.Text = children[j].text + "\n"; | ||
} | } | ||
} | |||
</source> | |||
<br> | |||
== sukemaru 版 == | |||
<blockquote> | |||
・気象情報がドキュメント内に書きこまれても…<br> | |||
・アウトプットバーだと開くとジャマ<br> | |||
・ダイアログだと警告サウンドがウルサイ<br> | |||
→ ポップアップメニューだったら「イイ感じ」かも? | |||
</blockquote> | |||
<br> | |||
kuro 版をベースにして <q>ポップアップメニュー</q>、<q>アウトプットバー</q>、<q>ダイアログ</q> のいずれで表示するかを選択できるようにしました。<br> | |||
ポップアップメニューの場合のみ、WEB ブラウザで気象情報のページを開くことができます。<br> | |||
ピンポイント天気の URL は、「[https://weather.yahoo.co.jp/weather/ Yahoo!天気・災害]」のページ内(左上あたり)にある検索ボックスに郵便番号を入力して、開いたページで取得できます。[https://www.yahoo-help.jp/app/answers/detail/p/616/a_id/44558/~/%E5%B8%82%E5%8C%BA%E7%94%BA%E6%9D%91%E3%81%94%E3%81%A8%E3%81%AE%E5%A4%A9%E6%B0%97%E6%83%85%E5%A0%B1%E3%82%92%E7%9F%A5%E3%82%8A%E3%81%9F%E3%81%84%EF%BC%88%E3%83%94%E3%83%B3%E3%83%9D%E3%82%A4%E3%83%B3%E3%83%88%E5%A4%A9%E6%B0%97%EF%BC%89] | |||
<br><br> | |||
;ダウンロード >> 「[[ファイル:Yahoo!_天気情報.zip]]」(アイコン入り) | |||
<source lang="javascript"> | |||
#title = "Yahoo! 天気情報..." | |||
#tooltip="Yahoo! 天気・災害" | |||
// #icon="weather.ico" | |||
// #icon = "Mery用 マテリアルデザインっぽいアイコン.icl",335 | |||
/** | |||
* --------------------------------------------------------- | |||
* Yahoo!天気情報 | |||
* Original Copyright (c) Kuro. All Rights Reserved. | |||
* www: http://www.haijin-boys.com/ | |||
* --------------------------------------------------------- | |||
* Modified by sukemaru, 2020/01/02 | |||
* --------------------------------------------------------- | |||
* 設定 outputEnable と alertEnable の両方が false ならポップアップメニューで表示。 | |||
* ポップアップメニューの「Yahoo! 天気・災害」をクリックすると | |||
* 気象情報をブラウザで開きます。 | |||
* 「Yahoo! 天気・災害」以外の場所をクリックした場合は、ポップアップを閉じます。 | |||
*/ | |||
// ---------- ▼ 設定項目 ▼ ---------- | |||
// ■ アウトプットバーに表示 | |||
var outputEnable = false; | |||
// ■ ダイアログに表示 | |||
var alertEnable = false; | |||
// ■ 地域を指定 (URL) | |||
var regionURL = "http://rss.weather.yahoo.co.jp/rss/days/4410.xml"; // 東京都 | |||
// Yahoo! 天気情報の地域指定 URL は | |||
// https://weather.yahoo.co.jp/weather/rss/ | |||
// のページで各地域のリンクURL末尾 "****.xml" の "****" 部分を調べて書き換えること | |||
// ※ 各地域のリンクURL https://rss-weather.yahoo.co.jp/rss/days/<****>.xml の | |||
// "https://rss-weather" を "http://rss.weather" に書き換えでもよい | |||
// ■ ポップアップメニューの「Yahoo! 天気・災害」をクリックしたときに開く URL | |||
var weatherURL = "https://weather.yahoo.co.jp/weather/13/4410/13101.html"; // 千代田区のピンポイント天気 | |||
// weatherURL = ""; //「Yahoo! 天気・災害」トップページ | |||
// weatherURL = "https://tenki.jp/"; //「日本気象協会 tenki.jp【公式】」 | |||
// weatherURL = "https://www.jma.go.jp/jp/kishojoho/"; //「気象庁 | 気象情報」 | |||
// ---------- ▲ 設定項目 ▲ ---------- | |||
var x = new ActiveXObject( "Microsoft.XMLDOM" ); | |||
x.async = false; | |||
x.setProperty( "ServerHTTPRequest", true ); | |||
x.load( regionURL ); | |||
var items = x.getElementsByTagName( "item" ); | |||
var a = [], dateTime = ""; | |||
for ( var i = 0, iLen = items.length; i < iLen; i ++ ) { | |||
var children = items[i].childNodes; | |||
for ( var j = 0, cLen = children.length; j < cLen; j ++ ) { | |||
if ( children[j].nodeName == "title" ) { | |||
a.push( children[j].text ); | |||
} | |||
if ( ! dateTime && children[j].nodeName == "pubDate" ) { | |||
dateTime = DateTime( children[j].text ); | |||
} | |||
} | |||
} | |||
var reg = / - Yahoo!天気・災害$/gm; | |||
// アウトプットバーで表示 | |||
if ( outputEnable ) { | |||
OutputBar.Writeln( dateTime + " 更新" + "\n" | |||
+ "- Yahoo!天気・災害 - \n" | |||
+ a.join( "\n" ).replace( reg, "" ) + "\n" ); | |||
OutputBar.Visible = true; | |||
} | |||
// ダイアログで表示 | |||
if ( alertEnable ) { | |||
a.splice( a.length-3, 0, "" ); | |||
Alert( " - Yahoo!天気・災害 - \n " + dateTime + " 更新\n\n" | |||
+ a.join( "\n" ).replace( reg, "\t" ) ); | |||
} | |||
// ポップアップメニューで表示 | |||
if ( ! outputEnable && ! alertEnable ) { | |||
// ■ true なら確認ダイアログを出してから開く / false なら確認なしで開く | |||
var confirmEnable = true; | |||
var confirmStr = "気象情報をブラウザで開きますか? "; | |||
var menuPos = 1; // ■ 1 ならマウス位置 / 0 ならキャレット位置にポップアップ | |||
var menu = CreatePopupMenu(); | |||
a.splice( 1, 0, "" ); a.splice( 9, 0, "" ); | |||
a.unshift( " ― Yahoo! 天気・災害 ― ", " " + dateTime + " 更新& ", "" ); | |||
for ( var i = 0, len = a.length; i < len; i++ ) { | |||
menu.Add( a[i].replace( reg, "" ).replace( / - /, "\t" ) | |||
, ( i == 0 ) ? 1 : 0 | |||
, a[i] ? 0 : meMenuSeparator ); | |||
} | |||
var r = menu.Track( menuPos ); | |||
if ( r == 1 && ( ! confirmEnable || Confirm( confirmStr ) ) ) { | |||
var url = weatherURL ? weatherURL : "https://weather.yahoo.co.jp/weather/"; | |||
new ActiveXObject( "WScript.Shell" ).Run( url ); | |||
} | |||
} | |||
function DateTime( dt ) { | |||
var dd = new Date( Date.parse( dt ) ); | |||
var m = dd.getMinutes(); mm = m < 10 ? "0" + m : m; | |||
return dd.getFullYear() + "年" | |||
+ ( dd.getMonth() + 1 ) + "月" | |||
+ dd.getDate() + "日 " | |||
+ dd.getHours() + "時" + mm + "分"; | |||
} | } | ||
</source> | </source> | ||
2020年1月2日 (木) 22:56時点における版
Yahoo! 天気情報の地域指定 URL は、「提供RSS - Yahoo!天気・災害」 のページで各地域のリンクURL末尾 ****.xml の部分を調べて、マクロのコード内の URL 書き換えてください。
(※ 各地域のリンク URL https://rss-weather.yahoo.co.jp/rss/days/<****>.xml の https://rss-weather を http://rss.weather に書き換えでもよい)
kuro 版
Yahooの天気情報を取得し、カーソル位置に挿入します。 使用前にurlの部分を任意の地域の情報に書き換えてください。
// -----------------------------------------------------------------------------
// Yahoo!天気情報
//
// Copyright (c) Kuro. All Rights Reserved.
// www: http://www.haijin-boys.com/
// -----------------------------------------------------------------------------
// Yahoo!天気情報
// http://weather.yahoo.co.jp/weather/public/rss.html
var url = "http://rss.weather.yahoo.co.jp/rss/days/4410.xml";
var x = new ActiveXObject("Microsoft.XMLDOM");
x.async = false;
x.setProperty("ServerHTTPRequest", true);
x.load(url);
var items = x.getElementsByTagName("item");
for (var i = 0; i < items.length; i++) {
var children = items[i].childNodes;
for (var j = 0; j < children.length; j++) {
if (children[j].nodeName == "title")
document.selection.Text = children[j].text + "\n";
}
}
sukemaru 版
・気象情報がドキュメント内に書きこまれても…
・アウトプットバーだと開くとジャマ
・ダイアログだと警告サウンドがウルサイ
→ ポップアップメニューだったら「イイ感じ」かも?
kuro 版をベースにして ポップアップメニュー
、アウトプットバー
、ダイアログ
のいずれで表示するかを選択できるようにしました。
ポップアップメニューの場合のみ、WEB ブラウザで気象情報のページを開くことができます。
ピンポイント天気の URL は、「Yahoo!天気・災害」のページ内(左上あたり)にある検索ボックスに郵便番号を入力して、開いたページで取得できます。[1]
- ダウンロード >> 「ファイル:Yahoo! 天気情報.zip」(アイコン入り)
#title = "Yahoo! 天気情報..."
#tooltip="Yahoo! 天気・災害"
// #icon="weather.ico"
// #icon = "Mery用 マテリアルデザインっぽいアイコン.icl",335
/**
* ---------------------------------------------------------
* Yahoo!天気情報
* Original Copyright (c) Kuro. All Rights Reserved.
* www: http://www.haijin-boys.com/
* ---------------------------------------------------------
* Modified by sukemaru, 2020/01/02
* ---------------------------------------------------------
* 設定 outputEnable と alertEnable の両方が false ならポップアップメニューで表示。
* ポップアップメニューの「Yahoo! 天気・災害」をクリックすると
* 気象情報をブラウザで開きます。
* 「Yahoo! 天気・災害」以外の場所をクリックした場合は、ポップアップを閉じます。
*/
// ---------- ▼ 設定項目 ▼ ----------
// ■ アウトプットバーに表示
var outputEnable = false;
// ■ ダイアログに表示
var alertEnable = false;
// ■ 地域を指定 (URL)
var regionURL = "http://rss.weather.yahoo.co.jp/rss/days/4410.xml"; // 東京都
// Yahoo! 天気情報の地域指定 URL は
// https://weather.yahoo.co.jp/weather/rss/
// のページで各地域のリンクURL末尾 "****.xml" の "****" 部分を調べて書き換えること
// ※ 各地域のリンクURL https://rss-weather.yahoo.co.jp/rss/days/<****>.xml の
// "https://rss-weather" を "http://rss.weather" に書き換えでもよい
// ■ ポップアップメニューの「Yahoo! 天気・災害」をクリックしたときに開く URL
var weatherURL = "https://weather.yahoo.co.jp/weather/13/4410/13101.html"; // 千代田区のピンポイント天気
// weatherURL = ""; //「Yahoo! 天気・災害」トップページ
// weatherURL = "https://tenki.jp/"; //「日本気象協会 tenki.jp【公式】」
// weatherURL = "https://www.jma.go.jp/jp/kishojoho/"; //「気象庁 | 気象情報」
// ---------- ▲ 設定項目 ▲ ----------
var x = new ActiveXObject( "Microsoft.XMLDOM" );
x.async = false;
x.setProperty( "ServerHTTPRequest", true );
x.load( regionURL );
var items = x.getElementsByTagName( "item" );
var a = [], dateTime = "";
for ( var i = 0, iLen = items.length; i < iLen; i ++ ) {
var children = items[i].childNodes;
for ( var j = 0, cLen = children.length; j < cLen; j ++ ) {
if ( children[j].nodeName == "title" ) {
a.push( children[j].text );
}
if ( ! dateTime && children[j].nodeName == "pubDate" ) {
dateTime = DateTime( children[j].text );
}
}
}
var reg = / - Yahoo!天気・災害$/gm;
// アウトプットバーで表示
if ( outputEnable ) {
OutputBar.Writeln( dateTime + " 更新" + "\n"
+ "- Yahoo!天気・災害 - \n"
+ a.join( "\n" ).replace( reg, "" ) + "\n" );
OutputBar.Visible = true;
}
// ダイアログで表示
if ( alertEnable ) {
a.splice( a.length-3, 0, "" );
Alert( " - Yahoo!天気・災害 - \n " + dateTime + " 更新\n\n"
+ a.join( "\n" ).replace( reg, "\t" ) );
}
// ポップアップメニューで表示
if ( ! outputEnable && ! alertEnable ) {
// ■ true なら確認ダイアログを出してから開く / false なら確認なしで開く
var confirmEnable = true;
var confirmStr = "気象情報をブラウザで開きますか? ";
var menuPos = 1; // ■ 1 ならマウス位置 / 0 ならキャレット位置にポップアップ
var menu = CreatePopupMenu();
a.splice( 1, 0, "" ); a.splice( 9, 0, "" );
a.unshift( " ― Yahoo! 天気・災害 ― ", " " + dateTime + " 更新& ", "" );
for ( var i = 0, len = a.length; i < len; i++ ) {
menu.Add( a[i].replace( reg, "" ).replace( / - /, "\t" )
, ( i == 0 ) ? 1 : 0
, a[i] ? 0 : meMenuSeparator );
}
var r = menu.Track( menuPos );
if ( r == 1 && ( ! confirmEnable || Confirm( confirmStr ) ) ) {
var url = weatherURL ? weatherURL : "https://weather.yahoo.co.jp/weather/";
new ActiveXObject( "WScript.Shell" ).Run( url );
}
}
function DateTime( dt ) {
var dd = new Date( Date.parse( dt ) );
var m = dd.getMinutes(); mm = m < 10 ? "0" + m : m;
return dd.getFullYear() + "年"
+ ( dd.getMonth() + 1 ) + "月"
+ dd.getDate() + "日 "
+ dd.getHours() + "時" + mm + "分";
}
スポンサーリンク