Dead by daylight Part192【IP無】
■ このスレッドは過去ログ倉庫に格納されています
https://1.bitsend.jp/download/0cd0c6e128bcb930bc8eb236908ce5a1.html
(パスワード: muNapabu)
ブロックリストインポート機能
既存の設定ファイルは削除して新しく設定しなおすのが手っ取り早いと思う
他、注意点があるので書いていく
キャッシュだけは十分な長さを取ってくれ
バグ・操作ミス関わらず、取り込み失敗したからリトライしようを繰り返したらF5アタックと勘違いされかねない network . cache_expireなんちゃら
ファイルキャッシュの有効期間。有効期間内のキャッシュがあれば、URLは叩かずそちらを使う。
普通の用途なら早々には表示するプロフィール情報に変化はないので日単位でとっても良いと思う。
ファイルキャッシュがあるなら爆速というのもある。
appearance . enable buttons
画面右下のメニュー表示可否。
ブロックリスト取り込みはadd_to_list
ONになってないと取り込みプルダウン自体が表示されない。 user_list . enable_lists
プロフ表示に使うインポートリストのON/OFF。
インポート自体を済ませていても、これがONになっていないと警告バッジが表示されない。
block_listについてはBANと似た赤色っぽいのにしておいた。 画面右下に白い空白ができている。ここをクリックするとモード選択になる。
blockを選択すると画面に説明が出る。
説明通り、コピーをすると取り込みが開始される。
自分のプロフィールページからフレンド管理→ブロックしてるユーザー一覧を表示して、ソースを見る等からHTMLソースを表示してCtrl+A。
インポートモードのリクエストはなるべく低頻度にしてある関係で、時間がかかると思います。
ただ、全てのユーザーに対してリクエストをするわけではない。
ここはブロック判定の話になるので次のレスで。 ユーザーのURLには2種類ある。
profiles/**** 形式のパーマリンク、steamidと呼ぶもの
id/**** 形式の可変URL
このうちprofilesについては永遠不変のURLなのでリクエストを叩く必要がない。URLから取れたIDを信用してブロックリストを作成して終了。
idについては、そこからsteamidを取らなければ完全にブロックできないので、URLリクエストが必要になる。
基本的にはここでURLを叩いてsteamidを取得し、これをブロックリストとする。
ここから負荷軽減のための機構の説明に入る。 >>580の考え方そのものは完全なstemaidを取得できて良い考えなんだが、日常的に取り込むのなら負荷は大きすぎる。
1000件のブロックリストを持ち、そのうち300件がID形式とすると、300ユーザーの情報を都度確認しなければならないことになる。
なので、ユーザーが決めるID文字列についてもブロックリストとして保存する方式にしている。
取り込み時には必ずsteamidに変換するが、それとは別にID文字列も保存している。jsonファイルが2つあるのはそういう理由である。
まず1000件のブロックリストのうち、700件がsteamidで除外される。
残りの300件のうち、ID文字列が変わっていないものについても除外する。
ID文字列を日常的に変える変人は少数だろうし、steam側でも制限を掛けてる筈なので、これで大半のID形式URLが対応不要になる。
この方式の欠点は、ID文字列の変更によってsteamidと対応しないブロック対象ID文字列が増えてしまうことがある。
変人がニアミスのID文字列を作りまくるとして、この変人の作ったID文字列と同じものを名乗ったユーザーは、取得済みの判定になるためID文字列URLによるインポートは行われない。
が、この程度ならば機能的に問題ないと判断した。
相当なレアケースになるだろうし、profiles形式のURLなら正常に取り込めるためである。 通常モードにおけるブロック済みユーザーの判定はこの限りでなく、常にファイルキャッシュかURLを叩いているため、steamidのみで確認する。
ブロックリストjsonに含まれているユーザーがブロック表示されなくなるわけではない。 ■ このスレッドは過去ログ倉庫に格納されています