はてなキーワード: 地名とは
psplusにきたからやった
ゲオでセールのとき注文したけど品切れとかで買えなかったことあったけど買えなくてよかったーと思った
★3くらいかなー
やって損したとは思わんけど、こんなもんかっていうがっかり感のほうが大きい
ちなみに龍が如くスタジオのゲームはジャッジアイズ1と7のみプレイ済み
よかったとこ
マップでカーソル合わせると~通りとか地名が出るから、サブくえとかメインで地名いわれても迷わずにすむ
7が1のオマージュだらけだったんだなと知れてよかった
10年刑務所とか裸釣りとかほかにもいくつかあったけど忘れちゃった
あー友人とバトルのもそうか
あと監視カメラでかむろちょうみてる情報やみたいなのがでてくるとことか
わるかったとこ
飲食店とかお店たくさんあるのに入れるのはごく一部の限られた店だけ
マップひらくとデフォが拡大しすぎで目的地の場所を確認するためにいちいちズームアウトするのが面倒
敵の攻撃うけてやたら大げさにぶったおれてダウンするくそ雑魚桐生ちゃん
ダッシュにスタミナいるシステム(あとからいらなくなるけどそもそも最初からいれんな
イベントシーンのセリフが飛ばせなくて見てるだけの時間ながくてめっちゃかったるい
ちょっと時間が余ったので、屋島にも行ったのだけれど、行った後に「これが屋島の戦いの屋島か!」ってすごいテンション上がった。
勝手に瀬戸内海のどこかの島かと思っていたり、こんな急峻な山で山の上にいる方が圧倒的に有利そうだけど義経はよく攻めたなと現地に行って初めて気づいたことがいくつもあった。
ふと、高松の学校では、「この屋島の戦いのあった場所はあの山です」とか教えられたりするんだろうなと思うと急にうらやましくなった。
(私は歴史の教科書には決してでてこないような地方の出身で、そういう経験はなかったので)
京都とか奈良とか鎌倉とかその他歴史の教科書に地元の地名がでてくることがあった経験のある人はどんな感じだったか是非教えてほしい。
地名も分からない、土地勘も無い所で、なんで地元民向けのサービスである路線バスを使おうとしてるんだ。
主要な観光地ならタクシーが捕まらないなんて事は無いし、最近は田舎でもスマホの配車サービスに対応してるとこが増えてきてる。
コロナのせいでタクシー業界も厳しいから、最近のタクシーの運転手さんめっちゃ丁寧だし、ちょっとしたガイドもしてくれるぞ。
時間に追われて常にストレスに晒されてる上に薄給の路線バスの運転手に、なんで自分から関わろうとするんだ。
それに観光が盛んな地域だと主要な観光地を巡回する観光客向けの循環バスを走らせてるところもある。
ああいうのだったら基本的に料金は固定だから、バス代がいくらか分からないなんて事もない。
毎日決まったところから乗って、決まったところで降りる、そういう人達が使う乗り物だ。
路線バスの利用者が重視するのは、バスの使いやすさや料金体系の分かりやすさじゃない。
なによりも運賃が安い事を重視してるんだ。
たかが10円と思うかもしれないが、毎日の通勤通学に利用している人間からしたら10円でもバカにならない。
地方じゃ最賃ギリギリで働いてる人が多いし、その最低賃金にしたって東京より大分安い。
たとえ定期券の利用で多少割引があるとしても、かなり痛い。
その為、地方のバス会社は運賃を可能な限り上げない事を最優先にして経営してる。
バスの運転手の待遇が悪いのも、やたら古いバスがいつまでも走ってるのも、分かりにくい運賃箱がそのままなのも人件費や設備投資の原資となる運賃を上げられないからだ。
つまり地方の路線バスは利用者の声をちゃんと聞いているからこそ、ああいう初見の人にわかりにくいサービスになってるんだよ(とはいえSuica使えるところは徐々に増えてるけどな)。
おそらく、いずれ各地の路線バスは自動運転の無人バスにならざるを得なくなるだろう。
全国的に料金体系や乗り方などが統一されるとしたら、そのタイミングになるんじゃないかと思う。
ただ技術的な課題を考慮すると、最低でもあと10年くらいはかかるだろうな。
それでも、どうしても路線バスで観光したいっていうのならスマホを活用してくれ。
専用アプリまで用意してるところは少ないが、大抵の場合、各バス会社は行き先検索を自社サイトに用意してる。
コロナ禍以前は外国人観光客もスマホで調べて路線バスを利用していた。
それから何か分からない事があった時、外国人観光客は積極的に他の客に質問してたな。
よっぽどじゃない限り、それくらいは教えてくれる。
お母さんには正直申し訳ないと思う、〇〇と××の誕生月にこんなこと避けるべきだと思ってなんとか毎日過ごしてたけど、死なないように努めて息をするのはとても苦しい、早く逃れたい気持ちでもう頭がいっぱいなの
S、ごめんね、愛してる、あの日私を追いかけてお店を出て来てくれて本当にありがとう、私のユートピア、健やかに
AとRちゃん、いつも楽しく過ごさせてくれてありがとう、【地名】に来てまさかこんな遊んでくれる年下の友達できるなんて思わなかったの
△△先輩、たくさん世話になってこんなことになって本当にすみません、盆に会えなくてすみません、あの世で待ってます
Yちゃん、たくさん喋れて良かった、女子トークって感じじゃなくて色んな議論が出来る人は本当に貴重で助かりました、【地域】も楽しいよ
Tちゃん、呼ばれてないけど先に言うわ結婚式行けなくてごめんね、たくさん私に怒ってくれてありがとう、未だに引越し手伝ってもらったこと思い出すよ
I、【地域】に来た時私を思い出してくれてありがとう、結婚式すごく楽しかったし綺麗だった、いつも私が話してばかりでごめんね、Hによろしく
〇△×ちゃん、推しよ、私の女神様、ステージも日常もインスタライブも全部全部ありがとう、お願いだから幸せになってくれ私の一生の唯一の推し
なんか色んな人にメッセージ残そうとしたけどあんまり思いつかないや、私はコミュ力高くて友達たくさんと言われるけどなんか別にそうでもないね
ずっと死にたかったの、初めて精神科に行ってびっくりした、皆そんなに死にたくないんだって、あはは、すごいね、私は機会があればトラックに轢かれたいし通り魔がいるなら私を刺して欲しくて乗ってる飛行機が墜落したとしても私は構わなかったのに
生きることは苦しくて理不尽でしんどい、その分の喜びがきっとあるはずと信じて縋って言い聞かせてきたけど、気づいてしまった、多分一生こんな感じだってね、私は可愛くも綺麗でもない変な顔のデブだって【恋人】さんが何度も言った通りだと
私は何者にもなれないし、そのままで良いよと認めることも難しい、より良い人間であることにも疲れてしまった、私は常に換えのきく存在だという事実に打ちのめされて立ってられない、女としても社会の一員としても人間としても自尊心がマイナスになった時点でもうゲームオーバーだったんだね
一生懸命手元の小さな喜びを必死にかき集めて抱きしめて私は幸せだと繰り返し唱えてたけど、もうとっくの昔に破綻してたんだね、ぐちゃぐちゃでもうどうしようもないこの状態をリカバリする術、色々試してみたんだけど全部全部徒労に終わったね、むしろこれは上手く出来てる大丈夫と思った矢先に他人からぶち壊されることも多かったね、あと試してないのはあの世だけ
あーあ、来世はシャチがいいな
長浜市の高時川が氾濫した航空写真の件で「あれは遊水地だから洪水じゃない」と言ってる人が多いのだが、あれも洪水です。
https://b.hatena.ne.jp/entry/s/twitter.com/kentaoki/status/1555648450955735040
洪水っていうのは普通水が流れない場所に水が流れてる事をいうので、河川敷の河原が水没しているのも洪水なのだ。
だから元記事の「河川敷も水没」っていう記述に文句言うのもおかしいのである。
そもそも河川=堤防の向こう側=人間の営み無しの地というのは今は常識になっているが、この常識は精々50~100年程度の歴史しかない。
人類文明は有史以来水と戦ってきたが、それは必ずしも堤防で川を閉じ込めるという意味ではなかった。氾濫が頻発する箇所は氾濫するに任せておき、水が少ない季節に洪水で肥沃になった土で農業をするという方法もあった。
田んぼというのはこの最たるもので、田んぼに適した土地というのは要するに河川の氾濫原だ。水も引きやすいし度たびの洪水でぐちゃぐちゃで栄養豊かな土のある平地。
そもそも低地での河川というのは思いっきり出鱈目に蛇行したり枝分かれしたり三日月湖が残って沼になったりと無茶苦茶な流れ方をするもんである。
例えばこれは熊谷の昔の河川状況を地質から推定した地図だが、見よ!この荒川の出鱈目ぶりを!
そもそも真っすぐな箇所なんて皆無だったのだ。真っすぐな箇所は全て明治以降に工事したもんだ。
そのままじゃしょうがないからこのうちのある程度真っすぐな河道を選んで繋げたのが今の荒川だ。しかも江戸初期まで元荒川を流れて幸手とかをぐちゃぐちゃにしていて開拓の邪魔なので切り替えられたのだな。
それでも蛇行しまくりで氾濫起こしてばかりの川から田んぼや集落をを防御しなきゃならない。
そこで河道から1km近く離れた箇所に低い堤防を築き、その堤防の中の田んぼや家の人は洪水の際は泣いてくれやとしたのである。これを「堤外地」と云う。堤防の中が堤外なんだな。
こうすると水の流れが弱まるし遊水地効果で水位の上昇も抑えられるから堤防に対する攻撃性が低くなる。
で、この広い堤外地があってそこが浸水すると当然泣く人も多く出るというのが当たり前の状態だったのを近代的治水で無くして来た、というのが今の状態なのだ。
だから堤外地が浸水するのを「洪水じゃない」と考えるのは現代的治水が頭にあるからなのだ。
一方で霞提というのは近世からある訳で、こっちは「堤防で全てが守られるのが当たり前」じゃない時代のものなので、そのせいで水没した土地を見て「これは洪水じゃない」と言っちゃうわけだ。
非現代のものを見て現代の価値観を援用するので、被害が出て泣く人もいる状況を「洪水じゃないし問題ない」と処理しちゃうのだ。
以上の理由から河川敷が水没するのも洪水であるのはお分かり頂けるかと思う。堤外地があるのが当然だったし今も残るので「洪水」は堤防の向こうこっちを隔てないのでありますよ。
地役権の事を書いてる人もいるが、これは河川工事で誰かの田んぼを遊水地にする時に設定するものだ。
例えば先の荒川でいうと、熊谷~彩湖までの河川敷というのはとても広い。特に鴻巣の辺りは河川敷が2km以上あるのだな。広すぎ!
これはこの広い河川敷を洪水時の遊水地にする為で、大正に工事がされた。
すると当然この中の家の人は田んぼが洪水時に水没しちゃうし、家を建ててもパーになるから建てられない。
こういう時に地役権設定がされるのだ。
地役権は元々、あんたの土地を使わせてほしいから金出すよ、でも工作物とか建てないでくれよって時に、登記簿に設定する民事契約の事だ。水路引かせてとか通路引かせてっていうのが多い。
河川の場合は「この土地は洪水で水没するって使い方させてくれ」っていう国と地主の契約だな。
一方、霞提は近世の仕組みだから、わざわざ地役権設定する動機っていうのがないので、補償を受けらるようにはなっていない可能性が高い。(農協の共済で救済されるが)
という訳で、堤外地と遊水地、地役権といった概念の時代背景がごっちゃになって、古いものを見るのに現代的基準を拡大しているのが誤解の原因と思われる。
昔は河川から離れた個所に堤防を作ったと書いたけど、その跡は住宅地の中の一段高い土地として残ってる事が多い。
宅地化すると土地を均す事が難しくなるのでちょっと高い土地っていうのが残り易いのだな。~~曽根なんて名前の地名があるところはあやしいぞ。
こういう土地はゲリラ豪雨の時にも浸水しにくくてお得なんだけど、その近傍は水がせき止められるので水位が上がりやすく注意が必要だ。
堤外地であっても浸水しにくい箇所と水位が上がりやすい箇所がある。
例えば荒川は彩湖下流の笹目橋付近が狭いのでその下流は水位が上がり難い。また熊谷~彩湖の中流域の堤外地に家やサーキット、教習所がある所もあまり浸水しない。40年くらい水没しなかった箇所が殆どだ。
それで当初は水没して困るものは置かなかったのだが、段々とエアコンとか高価な家電や設備とかを置くようになってしまい…
そこへ台風19号ですよ。当然電気モノは全滅で結構な損害を出したと聞きます。
広い河川敷に普通の堤防と直角の堤防を築いて、洪水時に河川敷の方の流れが連続しないようにする。遊水地機能をアップさせて下流の水位が上がるのを遅らせるようになってるわけだ。
例えば荒川を渡る川越線は鉄橋を渡る前に土手を走るが、実はこの土手、新たに作ったものじゃなくて横提の上を走っているのである。
江戸川区の殆どが荒川破堤時には浸水地域になると区が警告して話題になったことがあったが、荒川は上記の構造により豪雨発生時から水位が最大となるのに1日以上余裕がある。
荒川は堤防のかさ上げ工事を行っているが、ネックになるのが鉄道の鉄橋で、鉄橋の部分だけ堤防が低い状態になっている。
つまり水位が上がると一番危険なのが鉄橋であり、越水、破堤する場合は必ず鉄橋付近から起こる。
以上の為に、水位が上がると鉄道が不通となるので、サイレンがなってからでは電車で逃げる事が出来ないのである。
必ず前日に決断せねばならない。
多摩川の二子玉川駅の真下から南に掛けて、堤防が住宅地の外側にある箇所があった。
元々ここは料亭や芸者屋敷などがある地域で、大正に近代的な堤防工事をする事になったら「堤防で川が見えなくなる、商売あがったりだ」と反対されたのである。
そこでここを堤外地として堤防を築造して、交通の為に堤防に切れ目を入れた。洪水時になりそうなときは2枚の板を入れてその間に土嚢を投入する(角落しという)。
角落しが間に合わない場合はニコタマ全域洪水である。堤外地の料亭群は全部水没して流されてしまうが契約なので仕方がない。
ところがこの料亭群は戦争で早々に潰れて宅地として売りに出されてしまい、危ない住宅地が出来てしまった。
この為に10数年前から新たな連続堤を作っている。つまりこれまでずっとニコタマは水害的に危険な地域だったのだ。
霞提の代表格は信玄提なんだが、甲府盆地は河川の近代化が進んで殆ど連続堤に改修されてしまっている。土地利用が制限されるので発展の障害になっちゃうので仕方がないな。
幸いなことに、サッカーとちびまる子のおかげで、自己紹介をしても「どこだよそれ?」という反応をされたことはない。
また、海外経験はほとんどないが、少ない経験の中でも「Japan?そんな国知らねえなあ」という反応は見たことがない。
最近ふとそんな自分の出身地環境がぬるま湯なんじゃないかと感じている。
こういう地名の知名度の(地理オタクじゃない人の)一般常識のラインってどこまで想定すればいいの?
県庁所在地以外にどのくらいの規模の市町村までは知っておくべき?規模が小さくても何かの名所や事件で有名なところあるじゃん?(例:大洗町とか東海村とか)
他意なくランダムでググった例を出すと、福島県三島町の人や熊本県宇城市の人、バルバドスの人やエリトニアの人は出身地の説明めんどくさくないのかしら。
自動で安価をつけて返信するプログラムでもこんなに長く複雑になる(一部抜粋)
/**************************************
以下のCSV_DIR, FILE_PATHS, SETTINGSを書き換えてね。 <h3>o- *************************************/</h3>
//CSVファイルが置かれてるディレクトリのパス。投稿前にエラー出たら大体ここの設定ミス。 例:"C:\\Users\\sakuraimasahiro\\Documents\\iMacros\\Macros\\rentou\\";
'C:\\Users\\USER\\Desktop\\iMacros\\Macros\\rentou\\';
//ファイルのパス。CSVは絶対パスで、拡張子も必要。iimは相対パスでよく、拡張子不要。
const FILE_PATHS = {
textCsv: CSV_DIR + 'textNoAnker.csv',
//レス用投稿文が書かれたCSV。通常とレス用で分けないなら同じファイルを使えばいい。
replyTextCsv: CSV_DIR + 'textReply.csv',
};
baseWaitTime: 5,
//baseWaitTime+0~waitTimeRange(ランダム)だけ待つ
waitTimeRange: 5,
//連投しすぎだと忠告された場合に処理を一時停止させる時間(秒)
waitTimeForAvoidingPunishment: 60 * 30,
//メール
mail: 'sage',
//名前設定
name: '',
//以下、偽装ワッチョイ設定。浪人でワッチョイを非表示にしてるときだけtrueにしてね。
//妙なニックネーム(ワッチョイ、アウアウウーなど)をランダムで決めて付加するかどうか。true=付加する。false=付加しない。
//妙なニックネームの後に付く8桁の文字列をランダムで決めて付加するかどうか。
},
//アンカー無し投稿をするならtrue。しないならfalse。noAnkerPostかreplyPostのどちらかはtrueにすること(両方trueでもOK)。
//アンカー付き投稿(返信)をするならtrue。しないならfalse。もしnoAnkerPostとreplyPostの両方がtrueの場合、投稿は返信が優先され、返信対象が見つからなくなったらアンカー無し投稿をする。
//最初に取得するアンカー無し投稿文CSVファイルの行番号。もし返信用と同じCSVファイルを使うなら-1と入力。
noAnkerPostTextCsvStartRow: 1,
//最初に取得する返信用投稿文CSVファイルの行番号。もしアンカー無しと同じCSVファイルを使うなら-1と入力。
//テキストCSV/返信用テキストCSVの取得行が最終行に達したら最初の行まで戻るかどうか。true=戻る。false=マクロ終了。
//返信する場合、これより小さなレス番には返信しない。返信を投稿すると、この数値は前回の返信先のレス番に更新される。
minAnker: 895,
//返信する場合、名前に以下の文字列を含む投稿にアンカーをつけて返信する(ワッチョイやIPなど名前フィールドにあるものならなんでも可)。配列で複数指定可能。指定無しなら空配列([])。filterNamesとfilterNamesNotIncluded共に無指定ならレス番1から順に返信していく(minAnkerが設定されてればそこから順に)。以下のfilter系は全て併用可能。
//↑とは逆に、名前に以下の文字列を含まない投稿にアンカーをつけて返信する。↑と併用も可能。
//返信する場合、本文に以下の文字列を含む投稿にアンカーをつけて返信する。
filterText: ['自演かな', '自演わらわら', 'スクリプト使うの', '安価ガバ', '>>660', '自演で擁護', '最後' ,'あいうえお', 'かきくけこ', 'さしすせそ', 'なにぬねの', 'はひふへほ', 'まみむめも', 'やいゆえよ', 'やゆよ', 'らりるれろ', 'わいうえを', 'わをん', 'わいうえをん'],
},
//自分のIPアドレスの確認。VPNとかでIPを変更してマクロを動かしてるとき、突然VPNが作動しなくなってIPが元に戻ったときにマクロを止めるためのもの。
//以下の文字列が自分の現在のIPアドレスに含まれている場合、マクロを一時停止する。基本的に自分の本当のIPアドレスを入力。
},
//浪人設定。最後に動作を確認したのは5年くらい前で、今も同じように動作するかは、浪人を持ってないから確認できずわからない。
//浪人にログインしてるかどうかをチェックするかどうか。trueならする。falseならしない。trueにしていてもし浪人にログインしていないことを確認したらログインしにいく。
password: '1234',
},
};
/**************************************
設定箇所終わり。
https://info.5ch.net/index.php/%E6%9B%B8%E3%81%8D%E8%BE%BC%E3%82%81%E3%81%AA%E3%81%84%E6%99%82%E3%81%AE%E6%97%A9%E8%A6%8B%E8%A1%A8 <h3>o- *************************************/</h3>
/**************************************
・NULL演算子(??)は使えない。論理積(&&)は使える。
・オブジェクトの分割代入はできない。
・importはできない。 <h3>o- *************************************/</h3>
/**************************************
関数 <h3>o- *************************************/</h3>
/**
* ここから始まる。
*/
checkSettings();
var _TextCsvCursors = new TextCsvCursors(
SETTINGS.postSettings.noAnkerPostTextCsvStartRow > 0
? SETTINGS.postSettings.noAnkerPostTextCsvStartRow - 1
: SETTINGS.postSettings.noAnkerPostTextCsvStartRow,
SETTINGS.postSettings.textCsvLoop,
),
SETTINGS.postSettings.replyPostTextCsvStartRow > 0
? SETTINGS.postSettings.replyPostTextCsvStartRow - 1
: SETTINGS.postSettings.replyPostTextCsvStartRow,
SETTINGS.postSettings.textCsvLoop,
),
);
var _LoopStatuses = new LoopStatuses(0, SETTINGS.postSettings.minAnker);
const _MyPosterName = new MyPosterName({
name: SETTINGS.nameSettings.name,
});
const _ThreadUrl = openPromptThreadUrl();
//ループ
while (true) {
SETTINGS.ipSettings.checkIp && checkCurrentIpNotTheIp();
//スレを開く
openUrl(_ThreadUrl.fullUrlHttps());
//浪人にログインする設定なら、浪人にログインしているかどうかを確認し、していなければログインしにいく。
if (SETTINGS.roninSettings.checkLogin) {
}
}
if (SETTINGS.postSettings.replyPost) {
const targetAnkerNumber = createPostDOMList()
.filterPostnumberHigher(_LoopStatuses.currentMinAnker())
.filterByPostername(SETTINGS.postSettings.filterNames)
.filterByPosternameNotIncluded(
SETTINGS.postSettings.filterNamesNotIncluded,
)
.filterByText(SETTINGS.postSettings.filterText)
if (targetAnkerNumber !== null) {
const r = _TextCsvCursors.takeNextRowTextAsReply(targetAnkerNumber);
messageDisplay(`返信対象有り。アンカー先: ${targetAnkerNumber}`);
return {
...r,
updatedLoopStatuses:
_LoopStatuses.updateMinAnker(targetAnkerNumber),
};
}
}
if (SETTINGS.postSettings.noAnkerPost) {
//返信対象無し、或いは返信しない設定の場合。アンカー無し投稿文を作る。
const r = _TextCsvCursors.takeNextRowTextAsNoAnker();
messageDisplay('返信対象無し。アンカー無し投稿。');
return {
...r,
updatedLoopStatuses: _LoopStatuses,
};
}
return null;
})();
if (p) {
//投稿。
nickname: SETTINGS.nameSettings.nickname,
korokoro: SETTINGS.nameSettings.korokoro,
area: SETTINGS.nameSettings.area,
}),
SETTINGS.mail,
p.text,
);
//_TextCsvCursorsと_LoopStatusesを更新。
_TextCsvCursors = p.updatedTextCsvCursors;
_LoopStatuses = p.updatedLoopStatuses.incrementPostCount();
`投稿回数: ${_LoopStatuses.currentPostCount()}`,
`minAnker: ${_LoopStatuses.currentMinAnker()}`,
`今回アンカー無し投稿取得行: ${_TextCsvCursors.currentRows().noAnker}`,
`今回アンカー有り投稿取得行: ${_TextCsvCursors.currentRows().reply}`,
]);
} else {
`返信対象が現われるのを待機中...。`,
`投稿回数: ${_LoopStatuses.currentPostCount()}`,
`minAnker: ${_LoopStatuses.currentMinAnker()}`,
`今回アンカー無し投稿取得行: ${_TextCsvCursors.currentRows().noAnker}`,
`今回アンカー有り投稿取得行: ${_TextCsvCursors.currentRows().reply}`,
]);
}
wait(SETTINGS.baseWaitTime + randomRange(0, SETTINGS.waitTimeRange));
}
}
/**
* 投稿処理と投稿結果を見てリトライしたりマクロ終了したり。
* @param {string} serverName サーバー名
* @param {MyPosterName} _MyPosterName
* @param {string} postMail メール
*/
serverName,
postMail,
_MyText,
retryTimes = 0,
) {
const r =
retryTimes === 0
? new ValuesOfPost(serverName, _MyPosterName, postMail, _MyText).post(
postTo5chTread,
)
serverName,
postMail,
_MyText,
).postSubstring(retryTimes, postTo5chTread, postConfirm);
if (r) {
back();
return;
}
wait(7);
const error = createPostErrorMessage().analyze();
messageDisplay(error.message);
if (error.order === 'KILL') {
kill();
} else if (error.order === 'SKIP') {
return;
} else if (error.order === 'TRUNCATE') {
back();
serverName,
postMail,
_MyText,
retryTimes + 1,
);
} else if (error.order === 'WAIT') {
wait(SETTINGS.waitTimeForAvoidingPunishment);
serverName,
postMail,
_MyText,
retryTimes,
);
} else if (error.order === 'LOGIN') {
serverName,
postMail,
_MyText,
retryTimes,
);
}
return;
}
/**
* 現在のIPアドレスに、SETTINGS.ipSettings.avoidTheIpの値が含まれていないことを確認する。含まれていたらマクロを一時停止。
* @returns
*/
function checkCurrentIpNotTheIp() {
openUrl('https://www.cman.jp/network/support/go_access.cgi');
const _IpAdress = createIpAdressFromCMan();
if (_IpAdress.includes(SETTINGS.ipSettings.avoidTheIp)) {
pause('現在のIPに指定した値が含まれていることを確認。');
}
return;
}
/**
* @returns
*/
if (
SETTINGS.postSettings.noAnkerPost === false &&
SETTINGS.postSettings.replyPost === false
) {
return kill('設定エラー。noAnkerPostとreplyPost両方ともfalseになってる。');
}
if (
SETTINGS.postSettings.noAnkerPostTextCsvStartRow < 0 &&
SETTINGS.postSettings.replyPostTextCsvStartRow < 0
) {
return kill(
'設定エラー。noAnkerPostTextCsvStartRowとreplyPostTextCsvStartRow両方とも-1になってる。',
);
}
if (
SETTINGS.postSettings.noAnkerPostTextCsvStartRow === 0 ||
SETTINGS.postSettings.replyPostTextCsvStartRow === 0
) {
return kill(
'設定エラー。noAnkerPostTextCsvStartRow/replyPostTextCsvStartRowの初期値は-1或いは1以上で。',
);
}
}
/**
* 入力フォームを表示して入力されたスレのURLを受け取る。
*/
function openPromptThreadUrl() {
const url = prompt('スレURLを入力');
}
/**
* 開いてるスレのレス全て読み取ってPostListインスタンスを作って返す。
* 重すぎるので使うのやめ。どうやらインスタンスの大量生成が原因な模様。
*/
const posts = window.document.getElementsByClassName('post');
return new PostList(Array.from(posts).map((e) => new Post(e)));
}
/**
* 開いてるスレのレス全て取得してPostDOMListに格納して返す。
* @returns
*/
function createPostDOMList() {
const posts = window.document.getElementsByClassName('post');
for (let index = 0; index < posts.length; index++) {
//HTMLCollectionからElementを1つずつ抽出して配列に。
arrPostDOMList.push(posts.item(index));
}
return new PostDOMList(arrPostDOMList);
}
/**
* 開いてる投稿結果画面に表示されてるエラーを読み取ってPostErrorMessageインスタンスを作って返す。
*/
function createPostErrorMessage() {
window.document