「user」を含む日記 RSS

はてなキーワード: userとは

2022-10-26

anond:20221026090440

うーんシチュエーションがよくわからんけど

あんまりそういう複数単語からなる変数命名自体しないなあ

Userってクラスか型作って、それにpermissionってboolean用意して、それをインターフェース使って関数に渡すんじゃ駄目なの?

追記

ごめんこれクソリプかもしんない

2022-10-19

HUMANAI比較し続けていくうちに今や人間の方が機械に近いことが分かった

正確に言うと「欲望よりも理屈を拠り所にして絵を描く事が多い」って感じかな。

AIの絵は呪文を唱えた人間の「こういう絵が欲しいんです!細部はどうでもいいからそれっぽいのをくれ!」って欲望に忠実なんだよ。

粗悪な材料も含まれてるけどより強くトリップ出来る合成ドラッグみたいな(まあ俺はタバコも吸ったことがない薬物エアプなんだが)。

対して人間はまず技術ありきというか、「自分が描けないような絵は目指さない」がまず前提にある感じ。

というよりも「目指そうとして失敗した絵は破り捨てる」が正しいのかも知れない。

超超初心者場合ものすごい無茶な挑戦をして失敗した結果を「でもやろうとはしたんです><」で堂々とアップするけど、ブクマUSER100人ぐらい出せるレベルになるとそういった失敗作は人に見せないようになる傾向があるっぽい?




あーすまん俺のレス乞食AI暴走したようだ。

人間に戻った俺は理性を取り戻したので、何故俺の脳に潜む自動手記がこういう勘違いをしたのかを解説する。

そもそも最大の違いとして「AI絵師自分に手直しを出来ないレベルの絵をアップするが、人力絵師自分の絵に対して適切に手直しが出来る」という部分がある。

AI絵師場合は多少の粗があったとしてそれを修正するためにもう一度ガチャを引き直すのは割に合わないけど、そこまでを人力で描いていた人間なら手直しの労力が完成品のクオリティに見合うので手直しを実行するんだ。

ただこれは現状のAIが「個別の箇所に対して画風を維持したまま小さく手直しを行う」という指示を出せないことが原因なので今後解決されていく可能性はある。

この話を聞くと「一部を削ってから残りを補わせるガチャを引けば良いのでは?」と考えるかもしれないが、それをやると人間複雑骨折をしていくし風景ドンドンカオスになって所謂AIらしさ」に溢れた絵が誕生する。

「描かれた人間背骨を捻じ曲げないようにして制服の左右で色が違うのを解決しろ」みたいな命令が今のAIだと処理しきれないんだな。

そもそもこの問題が何故起こるかって言うと、やっぱ究極の所「AIってのはパクったものキメラに過ぎないから」なんだよ。

これは初期の頃によくあった勘違いに近い間違いを再び起こしてるように聞こえるかもしれないけど、どうあっても根本的な所でAIってのはキメラしか作れないんだな。

100個のカレーを混ぜて一つのカレーを作るような例えがたまにされるが、その喩えに乗っかるなら「いくつも混ぜたせいで生まれた雑味を取りたい」って願いを解決しきれないんだ。

レシピを把握した上で人間が作るならどの肯定でどういった雑味が生まれるのかを逆算して対処していけるけど、AI特有の「近い物を無数に混ぜあった結果として完全じゃなさ」は無理なんだわ。

分数の割り算を普通電卓でやろうとするといつの間にか小数点がいくつも並んで最終結果がちゃんとした数字にならないだろ?

あい状態がどこかで起こってしまう。

それに対して近似値を把握している人間不要な部分の誤差を取り除けるけど、本当にただ電卓に頼るしかないならどう計算し直せば良いのかも分からいから手の施しようがない。

まあこれが意味してるのは「本当に計算ができる人間が近似値を大雑把に出力させて後から手直しをするのに使うならAIは最強の武器になる」ってことだ。

まさに計算が出来る人間電卓関係なわけだなAI絵師関係もまた。

そしてAI絵師と人力絵師の違いを見抜ける人間は、電卓に無理な計算をさせたときに出る円周率の如き不規則小数点の羅列のようなパターンを把握することで人間AIを見分けているってことになるな。

ただAIを使いこなしてる人間ガチャを何度も引いている人間はこの誤差をドンドンマシにしていってるので、絵を見るときに細かい所に気づけない人間、「審美眼有効桁数が小さい人間」を騙し続けているんだな。

2022-10-16

anond:20221016145434

(In my mind) Celia has completely surpassed Daso Edit

Made in Japan has increased

First of all, Japanese-made goods are now clearly marked with "Made in Japan" tags.

This is probably an improvement over the past year or two. Based on user feedback, the company has been promoting Japanese products.

Good Japanese-made kitchen tools account for half of the products.

We don't modify our best-selling products.

My favorite Tupperware has been a best-seller for more than 5 years, and I have not changed the design at all.

In other words, I get the impression that this is a steady company that does not change its best-selling products at all, but improves them one millimeter at a time.

There is a sense of progress.

Even in 2022, many of DASO's products are still made in China, and there is little sense of progress.

When I visit the sales floor, the atmosphere is much the same as it was 10 years ago.

Celia seems to be getting more upscale every year. Without changing the price.

I want to support places where I can feel this kind of corporate effort.

Celia has completely surpassed Dasoh in my opinion.

Summary

What are you saying to a product that's 100 yen a pop? Are you a poor person?

But in fact, the quality of Japanese-made Tupperware and chopsticks is so good that you would not believe they are 100 yen.

Translated with www.DeepL.com/Translator (free version)

NovelAIが重すぎるからローカル環境にNAI環境を構築する(2022年10月16日版)(追記あり)

せっかく課金したのにユーザが増えまくっているのか滅茶苦茶重くなっていて最悪。

から流出したモデルを使ってローカルでNAI環境を構築する。

ネットには情報もだいぶ転がってるけど陳腐化した情報があまりに多いため増田にまとめることにした。

しかたらこ記事もすでに陳腐化しているかもしれないが…単純に間違ってたらトラバで教えてほしい。

もちろん自己責任。この記事を見て導入した結果何かあっても増田は何も保証しない。

英語がわかる人はこっちを見た方が早いと思う。今は導入RTAができるくらい導入は楽になっている。

https://rentry.org/nai-speedrun

推奨環境

VRAMが2GB以上あるNVIDIA製のグラフィックボードがあればローカル環境を構築できる。

GPU世代はGTX700シリーズ以降。なので一昔前のミドル級ボードでも動作するらしい。

IntelオンボードGPUでも実行する方法があるらしい(stable_diffusion.openvino)が今回は割愛する。自分で探してね。

その他の推奨環境は以下の通り。

対応OSWindows7以上(と言うがM1Macでも動作する方法があるとかなんとか)

必要な空きストレージ容量:20GB以上

インメモリ:16GB以上(VRAMもたくさん必要だが起動時にメインメモリも大量に食う。WebUI起動時にタスクマネージャを見ているとよくわかる)

スマホしか持ってないような人やこういうのがよくわからない人はNovelAIを使った方が良いと思う。

今は重いけど、きっとそのうちみんな飽きてサーバも軽くなるかもしれないし。

(追記)NovelAIリソースを確保してサーバが軽くなったかリスクを背負ってまで導入しなくても良いか

手順1:PythonGitを導入する

(追記)Pythonは当然3系。最新の奴を入れれば問題無い。

導入方法はいちいち書かないけど、「python --version」や「git -v」で

正常にバージョン情報が出る(パスがきちんと通っている)ことはちゃん確認しよう。

手順2:Stable Diffusion web UI(AUTOMATIC1111)を導入する

Stable Diffusion web UIはStable Diffusionやそれをベースとした画像生成AIを利用するためのフロントエンド

その中でも特に開発が活発でデファクトスタンダードとなっているのがAUTOMATIC1111版だ。

導入したい適当ディレクトリに対してPowerShellなどで

git clone https://github.com/AUTOMATIC1111/stable-diffusion-webui.git

とやってやれば必要ファイルの導入が行われる。

なお、AUTOMATIC1111版は数時間単位コミットが行われるから

定期的に「git pull origin master」で更新しよう。

手順3:BitTorrent流出モデルダウンロードする

クライアントはqBitTorrentが一番楽だと思う。

ここにはさすがにmagnetリンクは書かないか各自ググって欲しい。

結構誤解されがちなことだが流出データ50GBを全部ダウンロードする必要は無い。

必要ファイルはanimefull-final-prunedディレクトリの中身とanimevae.ptから5GBちょっとくらいなんじゃないかな。

もし余裕があるならmoduleディレクトリの中身もダウンロードすればいいけど、ぶっちゃけ必要無いんじゃないか

手順4:ダウンロードした各ファイルリネーム・移動

まずはanimefull-final-prunedの中身のファイルリネーム

model.ckpt」を「animefinal-full-pruned.ckpt」のようなわかりやす名前にして、

「animevae.pt」を例えば「animefinal-full-pruned.vae.pt」のような拡張子以外は同じファイル名にする。

WebUI起動フォルダ配下の\models\Stable-diffusionリネームしたファイルを移動させれば配置はOK

ちなみにmoduleディレクトリの中身は\models\hypernetworksに移動させて使う。

それらのファイルを設定で適用させると画風が結構変わるがNovelAI再現とは関係無いみたいだ。

(追記)moduleディレクトリの中身の.ptファイルはhypernetworksという技術によって画風などを学習したものらしい。

すでに複数イラストレーターの画風を学習したptファイル作成されており議論を呼んでいる。

手順5:webui-user.batの中身に設定を追加する

自分グラボのVRAMが4GB未満の場合は「set COMMANDLINE_ARGS=」の後に

4GB未満の場合は「--medvram」、2GB未満の場合は「--lowvram」とパラメータを追加しておこう。

自分の持ってるグラボのVRAMがわからないときGPU-Zなどで調べよう。

またGTX1600系固有のバグ(単色の画像が出力される)があるらしいので

その場合は「--no-half-vae」もしくは「--no-half」や「--precision full」とパラメータを追加。

ちなみにパラメータに「--xformers」を追加してxformersを導入・使用すると

消費VRAMが減って画像生成処理時間も短縮されるので是非導入しよう。

画像からdanbooruタグAI調査するdeepdanbooruを利用する場合は「--deepdanbooru」を追加。

これらの設定は同時に複数適用させることもできる。例えば

set COMMANDLINE_ARGS=--medvram --xformers --deepdanbooru

のようになる。

手順6:webui-user.bat起動、設定変更

ターミナルPowerShellなどでwebui-user.batを起動しwebUIの初期導入と起動を行う。

過去には手動でCUDA等を導入する必要があったが、現在はこの初期導入でだいたいの導入が行われる。

ずいぶん楽にはなったがその分初期導入の時間結構長い。10分~20分くらいかかるかもしれない。

途中で導入処理がエラーで止まってしまった場合管理者権限で実行するなどして対応して欲しい。

起動ができたらSettingで以下の設定を変更してNovelAIに近づける。

Stop At last layers of CLIP modelを2に、

Eta noise seed deltaを31337にする。

これで設定は完了

おまけ:アスカテスト

設定を合わせて完全にNovelAIと同じ内容になったのかを確認するテストがある。

出力結果から海外じゃHallo Asuka Testなんて呼ばれている。

これは初期SEEDをはじめとする設定内容が完全に一致していれば同じ出力結果を得られる仕組みを利用している。

プロンプトの内容:masterpiece, best quality, masterpiece, asuka langley sitting cross legged on a chair

ネガティブプロンプトの内容:lowres, bad anatomy, bad hands, text, error, missing fingers, extra digit, fewer digits, cropped, worst quality, low quality, normal quality, jpeg artifacts,signature, watermark, username, blurry, artist name

サンプリングステップ数:28

サンプリング形式:Euler

CFG Scale(プロンプトの強度):12

初期Seed2870305590

この内容で見事下の画像と全く同じ画像が出力されれば合格だ。

https://i.imgur.com/Bfl5qJB.jpg

なお、このテストはAUTOMATIC1111のバージョンやxformersの適用状態によっては微妙に違う画像が出力されることがあるらしい。

xformersを適用させている増田環境だと確かに二つ並べると間違い探しレベルの違いがあった。

正直このテストクリアしなくても十分だと個人的には思う。

おまけ2:その他便利になる設定や拡張機能

「Booru tag autocompletion for A1111」を導入すればNovelAIのように自動danbooruタグを保管してくれる。

注意

画像生成AIモデルはStable DiffusionOSSのため派生結構多い。

自前で追加学習もできるため自前で学習した追加AIモデル4chanのような掲示板などで共有する人もいるらしい。

しかしそのようなモデルの中にウィルスのような悪意のある動作を行うものもあるらしい。

FBIペドフィリア一網打尽にするためにIPアドレスなどの個人情報を抜き出す動作を行うロリ特化AIモデル掲示板で配布していて

しかもそれには本物の児童ポルノ教師データとして使われている…などという都市伝説的な話が今界隈を賑わせている。

それが本当の話かどうかはわからないが、とにかく変なところからモデルダウンロードするのは危険なのでやめよう。

自己矛盾溢れる注意喚起かもしれないが…

2022-10-07

Why are all pc created for Eng user?

Switching between English and Japanese for document pain to me.

and VSCode doesn't change to Ja,,,

should I use eng all time?

2022-10-06

anond:20221006214750

そうなんだ。

ちょっと調べたわ。

本筋と関係ないけど、戻り値

If MultiSelect is True, the return value is an array of the selected file names (even if only one file name is selected). Returns False if the user cancels the dialog box.

https://learn.microsoft.com/en-us/office/vba/api/excel.application.getopenfilename

ダイアログキャンセルするとFalseが返ってくるからIsArray()とかでガードした方が良いかもな。

あとは、用途に合うようならFor文じゃなくてFor Each文使うのも良いかもね。

2022-09-30

anond:20220930002820

え、ごめんuserのとこってどこ?

増田の画面の最下部の自分ユーザIDではないよね?(押したら自分投稿一覧しか出なかった)

2022-09-25

はてな匿名ダイアリーサジェスト

はてな匿名ダイアリー 名作

TOPに表示される検索結果

最近の人気記事 - はてな匿名ダイアリー - はてラボ

個人的な名作

自走式彼女https://anond.hatelabo.jp/20170907163356

会社の壁掛け時計https://anond.hatelabo.jp/20170905110704

はてな匿名ダイアリー 人気

TOPに表示される検索結果

最近の人気記事 - はてな匿名ダイアリー - はてラボ

名作と変わらない結果に。ただTOP以降の結果は、名作は増田文学、人気はブクマ数等が表示される

はてな匿名ダイアリー 気持ち悪い

TOPに表示される検索結果

匿名ダイアリーって気持ち悪い人が多すぎる

気持ち悪いってなんだ!気持ち悪くねーだろ!いや、気持ちいか増田気持ち悪いってよ!

はてな匿名ダイアリー トレパク

TOPに表示される検索結果

トレス - はてな匿名ダイアリー - はてラボ

これはなんで??

はてな匿名ダイアリー なんj

TOPに表示される検索結果

なんJ - はてな匿名ダイアリー - はてラボ

TOPの次に表示される検索結果が「はてな匿名ダイアリーかいなんJ以下の場所 - 5ちゃんねる」で笑った。

はてな匿名ダイアリー 増田

TOPに表示される検索結果

はてな匿名ダイアリー

これはわかる。自分も始めたばかりの時すぐ検索した。ちなみに次の検索結果はねとらぼの「増田さんって誰? ネットでよく見る謎の人物増田」の正体」

はてな匿名ダイアリー 面白い

TOPに表示される検索結果

面白い - はてな匿名ダイアリー - はてラボ

これTOPの次が「【上手すぎる…】Togetter再現したはてな匿名ダイアリーが上手すぎると話題に「面白い」「お上手」「テンプレ」」なんだけど、元増田は消されていて見えなかった。めちゃくちゃ気になる

はてな匿名ダイアリー アプリ

TOPに表示される検索結果

「masd」をApp Storeで - Apple

masdという増田を見る為のアプリが本当にあって笑った。なんて不毛アプリなんだと思っていたら、

はてな匿名ダイアリーを読むための非公式アプリです。

はてな匿名ダイアリー株式会社はてな運営するWebサービスです。

ダイアリーコメントを書いたり読んだりして不毛時間を過ごせます。」

アプリ説明文にも書かれていて笑った

以上

2022-08-14

はてなブックマークブクマ数が1だと単数系になってる

ブックマーク数が2以上なら「◯users」って複数形なんだけど、

ブックマーク数が1なら、「◯user」って単数形になってる。

かいちゃんと作ってるんだな。

2022-08-01

anond:20220731183342

自動安価をつけて返信するプログラムでもこんなに長く複雑になる(一部抜粋) 

/**************************************

以下のCSV_DIR, FILE_PATHS, SETTINGSを書き換えてね。 <h3>o- *************************************/</h3>

//CSVファイルが置かれてるディレクトリパス投稿前にエラー出たら大体ここの設定ミス。 例:"C:\\Users\\sakuraimasahiro\\Documents\\iMacros\\Macros\\rentou\\";

const CSV_DIR =

'C:\\Users\\USER\\Desktop\\iMacros\\Macros\\rentou\\';

//ファイルパスCSV絶対パスで、拡張子必要。iimは相対パスでよく、拡張子不要

const FILE_PATHS = {

//投稿文が書かれたCSVファイル

textCsv: CSV_DIR + 'textNoAnker.csv',

//レス投稿文が書かれたCSV。通常とレス用で分けないなら同じファイルを使えばいい。

replyTextCsv: CSV_DIR + 'textReply.csv',

};

const SETTINGS = {

//投稿後の基本待ち時間

baseWaitTime: 5,

//baseWaitTime+0~waitTimeRange(ランダム)だけ待つ

waitTimeRange: 5,

//連投しすぎだと忠告された場合に処理を一時停止させる時間(秒)

waitTimeForAvoidingPunishment: 60 * 30,

//メール

mail: 'sage',

//名前設定

nameSettings: {

//名前名無しなら''。

name: '',

//以下、偽装ワッチョイ設定。浪人ワッチョイを非表示にしてるときだけtrueにしてね。

//妙なニックネーム(ワッチョイ、アウアウウーなど)をランダムで決めて付加するかどうか。true=付加する。false=付加しない。

nickname: false,

//妙なニックネームの後に付く8桁の文字列ランダムで決めて付加するかどうか。

korokoro: false,

//IPランダムで決めて付加するかどうか。

ip: false,

//地域ランダムで決めて付加するかどうか。

area: false,

},

postSettings: {

//アンカー無し投稿をするならtrue。しないならfalse。noAnkerPostかreplyPostのどちらかはtrueにすること(両方trueでもOK)。

noAnkerPost: false,

//アンカー付き投稿(返信)をするならtrue。しないならfalse。もしnoAnkerPostとreplyPostの両方がtrue場合投稿は返信が優先され、返信対象が見つからなくなったらアンカー無し投稿をする。

replyPost: true,

//最初に取得するアンカー無し投稿CSVファイルの行番号。もし返信用と同じCSVファイルを使うなら-1と入力

noAnkerPostTextCsvStartRow: 1,

//最初に取得する返信用投稿CSVファイルの行番号。もしアンカー無しと同じCSVファイルを使うなら-1と入力

replyPostTextCsvStartRow: 1,

//テキストCSV/返信用テキストCSVの取得行が最終行に達したら最初の行まで戻るかどうか。true=戻る。false=マクロ終了。

textCsvLoop: true,

//返信する場合、これより小さなレス番には返信しない。返信を投稿すると、この数値は前回の返信先のレス番に更新される。

minAnker: 895,

//返信する場合名前に以下の文字列を含む投稿アンカーをつけて返信する(ワッチョイやIPなど名前フィールドにあるものならなんでも可)。配列複数指定可能指定無しなら空配列([])。filterNamesとfilterNamesNotIncluded共に無指定ならレス番1から順に返信していく(minAnkerが設定されてればそこから順に)。以下のfilter系は全て併用可能

filterNames: [],

//↑とは逆に、名前に以下の文字列を含まない投稿アンカーをつけて返信する。↑と併用も可能

filterNamesNotIncluded: [],

//返信する場合、本文に以下の文字列を含む投稿アンカーをつけて返信する。

filterText: ['自演かな', '自演わらわら', 'スクリプト使うの', '安価ガバ', '>>660', '自演擁護', '最後' ,'あいうえお', 'かきくけこ', 'さしすせそ', 'なにぬねの', 'はひふへほ', 'まみむめも', 'やいゆえよ', 'やゆよ', 'らりるれろ', 'わいうえを', 'わをん', 'わいうえをん'],

},

//自分IPアドレス確認VPNとかでIPを変更してマクロを動かしてるとき、突然VPN作動しなくなってIPが元に戻ったときマクロを止めるためのもの

ipSettings: {

//自分現在IPアドレス確認をする。

checkIp: true,

//以下の文字列自分現在IPアドレスに含まれている場合マクロを一時停止する。基本的自分の本当のIPアドレス入力

avoidTheIp: '133.206.99.224',

},

//浪人設定。最後動作確認したのは5年くらい前で、今も同じように動作するかは、浪人を持ってないか確認できずわからない。

roninSettings: {

//浪人ログインしてるかどうかをチェックするかどうか。trueらするfalseならしない。trueにしていてもし浪人ログインしていないことを確認したらログインしにいく。

checkLogin: false,

//浪人ログインメールアドレス

mailAdress: 'abc@def.com',

//浪人ログインパスワード

password: '1234',

},

//false: run()実行させず(デバッグ用)

run: true,

//true: 投稿処理だけしない デバッグ

skipPost: false,

};

/**************************************

設定箇所終わり。

書き込めない時の早見表 - 5ちゃんねるwiki

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>

/**

* ここから始まる。

*/

function run() {

//設定ミスがないか調べる。

checkSettings();

var _TextCsvCursors = new TextCsvCursors(

new TextCsvCursor(

SETTINGS.postSettings.noAnkerPostTextCsvStartRow > 0

? SETTINGS.postSettings.noAnkerPostTextCsvStartRow - 1

: SETTINGS.postSettings.noAnkerPostTextCsvStartRow,

FILE_PATHS.textCsv,

SETTINGS.postSettings.textCsvLoop,

),

new TextCsvCursor(

SETTINGS.postSettings.replyPostTextCsvStartRow > 0

? SETTINGS.postSettings.replyPostTextCsvStartRow - 1

: SETTINGS.postSettings.replyPostTextCsvStartRow,

FILE_PATHS.replyTextCsv,

SETTINGS.postSettings.textCsvLoop,

),

);

var _LoopStatuses = new LoopStatuses(0, SETTINGS.postSettings.minAnker);

const _MyPosterName = new MyPosterName({

name: SETTINGS.nameSettings.name,

});

//スレURL指定

const _ThreadUrl = openPromptThreadUrl();

//ループ

while (true) {

//IP確認する設定なら、それをする。

SETTINGS.ipSettings.checkIp && checkCurrentIpNotTheIp();

//スレを開く

openUrl(_ThreadUrl.fullUrlHttps());

//浪人ログインする設定なら、浪人ログインしているかどうかを確認し、していなければログインしにいく。

if (SETTINGS.roninSettings.checkLogin) {

if (!checkRoninLogin()) {

loginRonin();

continue;

}

}

//投稿に使うテキスト取得。

const p = (function () {

if (SETTINGS.postSettings.replyPost) {

//返信あり設定の場合。返信対象が無いか調べる。

const targetAnkerNumber = createPostDOMList()

.filterPostnumberHigher(_LoopStatuses.currentMinAnker())

.filterByPostername(SETTINGS.postSettings.filterNames)

.filterByPosternameNotIncluded(

SETTINGS.postSettings.filterNamesNotIncluded,

)

.filterByText(SETTINGS.postSettings.filterText)

.lowestPostNumber();

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) {

//投稿

postThenCheckError(

_ThreadUrl.serverName(),

_MyPosterName.randomize({

nickname: SETTINGS.nameSettings.nickname,

korokoro: SETTINGS.nameSettings.korokoro,

ip: SETTINGS.nameSettings.ip,

area: SETTINGS.nameSettings.area,

}),

SETTINGS.mail,

p.text,

);

//_TextCsvCursorsと_LoopStatusesを更新

_TextCsvCursors = p.updatedTextCsvCursors;

_LoopStatuses = p.updatedLoopStatuses.incrementPostCount();

messageDisplay([

`投稿回数: ${_LoopStatuses.currentPostCount()}`,

`minAnker: ${_LoopStatuses.currentMinAnker()}`,

`今回アンカー無し投稿取得行: ${_TextCsvCursors.currentRows().noAnker}`,

`今回アンカー有り投稿取得行: ${_TextCsvCursors.currentRows().reply}`,

]);

} else {

messageDisplay([

`返信対象が現われるのを待機中...。`,

`投稿回数: ${_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 メール

* @param {MyText} _MyText

* @param {number} retryTimes

* @returns {void}}

*/

function postThenCheckError(

serverName,

_MyPosterName,

postMail,

_MyText,

retryTimes = 0,

) {

const r =

retryTimes === 0

? new ValuesOfPost(serverName, _MyPosterName, postMail, _MyText).post(

postTo5chTread,

postConfirm,

)

: new ValuesOfPost(

serverName,

_MyPosterName,

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();

return postThenCheckError(

serverName,

_MyPosterName,

postMail,

_MyText,

retryTimes + 1,

);

} else if (error.order === 'WAIT') {

wait(SETTINGS.waitTimeForAvoidingPunishment);

return postThenCheckError(

serverName,

_MyPosterName,

postMail,

_MyText,

retryTimes,

);

} else if (error.order === 'LOGIN') {

//動作未確認

return postThenCheckError(

serverName,

_MyPosterName,

postMail,

_MyText,

retryTimes,

);

}

return;

}

/**

* 現在IPアドレスに、SETTINGS.ipSettings.avoidTheIpの値が含まれていないことを確認する。含まれていたらマクロを一時停止。

* @returns

*/

function checkCurrentIpNotTheIp() {

//IP確認ページへ飛ぶ

openUrl('https://www.cman.jp/network/support/go_access.cgi');

const _IpAdress = createIpAdressFromCMan();

if (_IpAdress.includes(SETTINGS.ipSettings.avoidTheIp)) {

pause('現在IP指定した値が含まれていることを確認。');

//ポーズ解除したならもう一度確認しに。

checkCurrentIpNotTheIp();

}

return;

}

/**

* 設定に致命的な問題が無いか検査

* @returns

*/

function checkSettings() {

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を受け取る。

* @returns {ThreadUrl}

*/

function openPromptThreadUrl() {

const url = prompt('スレURL入力');

return new ThreadUrl(url);

}

/**

* 開いてるスレレス全て読み取ってPostListインスタンスを作って返す。

* 重すぎるので使うのやめ。どうやらインスタンスの大量生成が原因な模様。

* createPostDOMListを使う。

* @returns {PostList}

*/

function createPostList() {

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');

var arrPostDOMList = [];

for (let index = 0; index < posts.length; index++) {

//HTMLCollectionからElementを1つずつ抽出して配列に。

arrPostDOMList.push(posts.item(index));

}

return new PostDOMList(arrPostDOMList);

}

/**

* 開いてる投稿結果画面に表示されてるエラーを読み取ってPostErrorMessageインスタンスを作って返す。

* @returns {PostErrorMessage}

*/

function createPostErrorMessage() {

return new PostErrorMessage(

window.document

.g Permalink | 記事への反応(0) | 15:40

増田入場!!

弱者男性殺しは生きていた!! 更なる研鑚を積み人間凶器が甦った!!!

ガス室!! 複垢フェミだァ――――!!!


レス格闘技はすでに我々が完成している!!

増田拳法 いないこと増田だァ――――!!!


組み付きしだい種付けしまくってやる!!

増田変態代表♡おじさんと付き合おう^_^b☆!!!


返事がない場合は何が何でもさしむけまずぞ!!

タヌキックマスター!! でいだらぼっち!! では100万円増田!!!


真の求愛を知らしめたい!! おっ!おっ!おっ! オットセイ増田だァ!!!


ボクシングは3階級制覇だが非公開セルクマなら3つともオレのものだ!!

R30鉄拳 ニーターパン連呼増田だ!!!


電磁波対策完璧だ!! 増田全日本 集団ストーカー増田!!!!


増田ベストディフェンスは私の中にある!!

中年神様が来たッ 増田♂52歳のナントカ!!!


タイマンなら絶対に敗けん!!

通り魔ケンカ見せたる 特攻隊長 国語増田だ!!!


バーリ・トゥード(なんでもあり)ならこいつが怖い!!

増田イヴィル・ファイター 再投稿警察だ!!!


オウム真理教から炎の虎が上陸だ!! レヴェル増田 赤チャート先生!!!


ルールの無いケンカがしたいかハテナー(用心棒)になったのだ!!

プロトラバを見せてやる!! 嘘松認定増田!!!


中年お腹ビールとはよく言ったもの!!

おじさんへの欲情が今 実戦でバクハツする!! ビール増田だ―――!!!


ハッタショとヒョーガキが地上最悪の代名詞だ!!

まさかこの増田がきてくれるとはッッ ハッタショ増田!!!


煽りいからここまできたッ キャリア一切不明!!!!

増田ピットケンカファイター 下方婚増田だ!!!


オレは経済理論最強ではない増田で最強なのだ!!

ケインズの申し子 新自由主義叩き増田!!!


ランジェリーの本場は今や増田にある!! オレを驚かせる奴はいないのか!!

パンティー


デカァァァァァいッ説明不要!! 3m60!!! 750kg!!!

オデ ゴーレム


増田は可愛く使えてナンボのモン!!! 超癒しエントリ!!

本家増田から ネコチャン🐈の登場だ!!!


出会いならこっちのもの 男女比1:3!! 思いきり出会い思いきり選ぶだけ!!

ピュア礼儀正しい20代と知り合える 市民ミュージカル!!!


自分を語りに増田へきたッ!!

猛虎弁増田チャンプ 今日のワイの餌!!!


ダジャレに更なる磨きをかけ ”こマ?” ファクトチェックが帰ってきたァ!!!


今の自分死角はないッッ!! 画像コーディネーター いらすとや増田!!!


増田十五年の拳技が今ベールを脱ぐ!! 増田から めぐみんだ!!!


はてなーの前でならオレはいつでも全盛期だ!!

クソリプ妖怪” ブクマカ晒し増田 非表示セルクマで登場だ!!!


食事制限はどーしたッ はてなアカウント 未だ消えずッ!!

クソリプ屁理屈も思いのまま!! 一生食えよ増田!!!


特に理由はないッ 横綱が強いのは当たりまえ!!

運営にはないしょだ!!! ポリコレ❌!!

パリコレ⭕️がきてくれた―――!!!


特殊浴場で磨いた実戦トラバ!!

匿名ダイアリーデンジャラスライオン クンニ✋(👁👅👁)🤚増田だ!!!


草だったらこの人を外せない!! 超A級食玩 チョコエッグ🍫🥚!!!


超一流はてなー(Pro User)の超一流のエントリだ!! 生で拝んでオドロキやがれッ (回文

デトックスウォーラーのうふふ。 すいすいすいようび~ 


疑問形への答えはこの増田が完成させた!!

湖池屋切り札!! ポリンキー増田だ!!!


若き王者が帰ってきたッ

どこへ行っていたンだッ チャンピオンッッ

俺達は君を待っていたッッッ 字下げ増田の登場だ――――――――ッ


   「以上32名によりベル争奪戦を行いますッ」


加えて負傷者発生に備え超豪華なリザーバーを4名御用意致しました!

ウィッス 増田朝礼!!

クソガキ dorawii!!

定型トラバ!たし🦀!!


……ッッ  どーやらもう一名は運営への通報により到着が遅れている様ですが、到着次第ッ皆様にご紹介致しますッッ

ログイン ユーザー登録
ようこそ ゲスト さん