西野ブログ対策CHIMNEY TOWN版
西野さんのブログが移転されたそうです。
ameblo.jp
chimney.town
正直もういいかとも思うのですが、最近対応しきれないパターンが出ていました。これで勝った感を出されても腹立たしいので一応対策を公開します。
https://codepen.io/kogawa_vonly/pen/eYEramJ
.pageNewsdetail-contents, .pageNewsdetail-contents>div:first-child, .pageNewsdetail-contents>div:first-child *:not(.stack) { margin: 0 !important; padding: 0; line-height: 1.2; } .pageNewsdetail-titles{margin:0;padding:0;} .pageNewsdetail-content-article h2 { font-size: 1.5em; font-weight: bold; padding-left: 1rem !important; } .pageNewsdetail-content-article h3 { font-size: 1.17em !important; font-weight: bold; color: #ff6900; } .pageNewsdetail-content-article>div:last-child{display:none;} .pageNewsdetail-content-article figure>img { width: auto; height: auto; max-width: 100% } .ogp-text:before{background:none;} .br_first,.br_first+br,br+br+br,.br_last~br{display:none;} .leaf{height:6rem;} .compre{max-width:70% !important;}
// ==UserScript== // @name chimneytown2 // @namespace http://tampermonkey.net/ // @version 0.1 // @description try to take over the world! // @author You // @match https://chimney.town/* // @icon https://www.google.com/s2/favicons?domain=chimney.town // @grant none // ==/UserScript== $('.pageNewsdetail-content-article strong').contents().unwrap(); $('.pageNewsdetail-content-article>*:has(br)').contents().filter(function () { return this.nodeType === 3; }).wrap("<span class='n_text'></span>"); $('.pageNewsdetail-content-article *').each(function(){ if($(this).text().match(/(\u0020|\u00A0|\u3000| ){2}/gi)){ $(this).addClass("nbsp"); } else if($(this).text().match(/(\u0020|\u00A0|\u3000| )|\s/gi)){ if($(this).text().length<2){ $(this).addClass("nbsp"); } } }); $('.nbsp:has(*)').removeClass("nbsp"); $('.nbsp').remove(); $('a:empty').remove(); $('.pageNewsdetail-content-article *:contains("=")').addClass("l_yoko"); $('.pageNewsdetail-content-article *:contains("【")').addClass("mark"); $('.pageNewsdetail-content-article *:contains("★")').addClass("mark"); $('.pageNewsdetail-content-article *:contains("▼")').addClass("mark"); $('.l_yoko:has(*),.pageNewsdetail-content-article>.l_yoko').removeClass("l_yoko"); $('.mark:has(*),.pageNewsdetail-content-article>.mark').removeClass("mark"); $('.mark').each(function () { var str = $(this).text().slice(0, 1) var str_all = $(this).text() if (str.match(/(\u0020|\u00A0|\u3000| )|\s/)) { str_all = str_all.slice(1); str = str_all.slice(0, 1); } if (str == "【" | str == "★" | str == "▼") { $(this).addClass("mark_start"); str_all = str_all.slice(1); if (str_all.match(/.+【/)) { $(this).removeClass("mark_start"); } } }); $('br:first-child').addClass("br_first"); $('br').not('br+br').each(function () { $(this).nextUntil(':not(br)').addBack().wrapAll('<span class="br_ren"></span>'); }); $('.br_ren+a,.br_ren+.l_yoko,.br_ren+.mark_start').prev().addClass("br_solo"); $('a+.br_ren,.l_yoko+.br_ren,.mark_start+.br_ren').addClass("br_solo"); $('.br_solo>br~br').remove(); $('.br_ren').contents().unwrap(); $('.pageNewsdetail-content-article>*>*:not(br):last-of-type').addClass("text_last"); $('.text_last:last-of-type').prevAll().removeClass("text_last"); $('.text_last+br').addClass("br_last"); $('.pageNewsdetail-content-article>p:has(br+*:not(br))').addClass("br_mix"); $('.pageNewsdetail-content-article>p:has(*:not(br)+br)').addClass("br_mix"); $('.pageNewsdetail-content-article>p:has(br):not(.br_mix)').addClass("br_only"); $('.br_mix').removeClass("br_mix"); $('.pageNewsdetail-content-article figure:not(:first-child)>img[width]').bind('load', function () { $(this).each(function () { var w = $(this).attr('width'); var h = $(this).attr('height'); if (w == h || w == h * 1.5 || w * 0.75 == h || w * 0.5625 == h) { $(this).addClass("compre"); } }); }); $('.pageNewsdetail-content-article figure:not(:first-child)>img[width]').each(function () { var w = $(this).attr('width'); var h = $(this).attr('height'); if (w != h || w != h * 1.5 || w * 0.75 != h || w * 0.5625 != h) { $(this).removeClass("compre"); } }); $('.youtube').removeClass("youtube"); $('.wp-block-image').removeClass("wp-block-image"); $('.has-luminous-vivid-orange-color').removeClass("has-luminous-vivid-orange-color"); $('.pageNewsdetail-content-article iframe').each(function () { var w_article = $('.pageNewsdetail-content-article').width(); $(this).attr('width', Math.round(w_article * 0.7)); $(this).attr('height', Math.round($(this).attr('width') * 0.5625)); }); $('a:has(.ogp-img)').addClass("leaf"); $('.pageNewsdetail-content-article figure:not(:first-child)>img[width]').each(function () { var w = $(this).attr('width'); var h = $(this).attr('height'); if (w == h || w == h * 1.5 || w * 0.75 == h || w * 0.5625 == h) { $(this).addClass("compre"); } }); $('p,h2,h3,figure').addClass("p_block"); $('.p_block').not('.p_block+.p_block').each(function () { $(this).nextUntil(':not(.p_block)').addBack().wrapAll('<p class="p_ren"></p>'); }); $('.p_ren').each(function () { var p_loop=$(this).children().length; if(p_loop>6){ $(this).children().addClass("stack"); } }); $('.p_ren').contents().unwrap(); $('.p_block').removeClass("p_block"); $('.stack:empty,.stack.br_only').remove(); $('.stack:has(.mark),.stack:has(.l_yoko),.stack:has(a.text_last)').removeClass("stack"); $('.stack:has(*:not(.br_last)+br:not(.br_last)+br)').removeClass("stack"); $('h2.stack,h3.stack,figure.stack').removeClass("stack"); $('.stack+*:has(.l_yoko),.stack+a,.stack+h2,.stack+h3,.stack+figure').prev().removeClass("stack"); $('.pageNewsdetail-content-article>*:not(.br_only):not(.stack):not(a)').removeAttr('class');
詰将棋解説 5手詰
Twitterで詰将棋自体はよく見かけるのですが、解説はあまり見ない気がするのでやってみます。自分の作品でもいいのですが自画自賛と思われるのも嫌なので避けます。
よくある収束
— みずたま (@go_tom_89) June 15, 2021
5手詰#おやすみ詰将棋 pic.twitter.com/j631hypctA
居飛車穴熊を相手にした終盤戦のような配置ですね。穴熊崩しといえば2三の地点を攻めたいところです。初手から▲2三桂と打ちたいのですが△2二玉、▲3一馬、△3三玉と進むと問題が発生します。
▲4二馬は△2二玉、▲4二角成は△4四玉がありどちらかの逃げ道を抑えられません。▲2二馬は△同玉、▲3一角成、△3三玉で元の形に戻ります。必ずしもパターン通りでうまくいかないのが面白いですね。
そこでどうするかですが、初手▲2三桂に代えて▲3三馬と捨てます。△同桂で3三からの逃走ルートを塞ぎつつ5三の角を活かす狙いです。
この▲3三馬に2二へ合駒を打てば今度こそ▲2三桂までなので
仕方無しの△同桂に▲2三桂△2二玉▲3一角成までの5手詰みです。
馬の強さを存分に活かした詰将棋です。出題者の方は#おやすみ詰将棋で自作品をまとめられているようです。興味のある方は是非解いてみてください。
lazyloadの独自属性対策
- 981 名前:名無しさん@お腹いっぱい。 投稿日:2020/11/24(火) 23:16:18.76 ID:SKoR9FCR0
- 2ページ目以降の画像の遅延読み込み (Lazy Load) の対策を、GreasyFork で公開しました。
https://greasyfork.org/ja/scripts/416710-autopagerize-lazy-load-assistant
- 982 名前:名無しさん@お腹いっぱい。 投稿日:2020/11/24(火) 23:58:48.54 ID:KxrmkJAv0
- >>981
いいね完璧
- 983 名前:名無しさん@お腹いっぱい。 投稿日:2020/11/25(水) 01:43:44.25 ID:LlMgWYNX0
- ImpressのWatchがajaxプロパティ使ってるんだよなぁ
Watchはよく見るから自前スクリプトでは対応させてるんだけどajaxだからもちろんdatasetには無い
まあでも汎用的なプロパティ名じゃ無いわな……
- 984 名前:名無しさん@お腹いっぱい。 投稿日:2020/11/25(水) 04:18:17.98 ID:1F06LSlV0
- const DATASETS = [
'src',
'lazySrc',
'original',
];
img.src = img.dataset[name];
srcがいらなくない?
img.src=img.srcしてるような
俺のはブックマだが他のが入ってる
["data-src", "data-lazy-src", "data-original", "ajax", "data-layzr", "data-gifffer"]
- 985 名前:名無しさん@お腹いっぱい。 投稿日:2020/11/25(水) 08:45:31.91 ID:Pm0TDhB80
- >>983
AutoPagerize質問・要望スレ page:5
うわーまじかぁ 自分もWatchたまに見るけど独自属性には付き合ってらんないな・・・
html埋め込みスクリプトで↓こんなことやってんね
$('.main-contents img[ajax]').each(function(){
$(this).attr('src', $(this).attr('ajax'));
$(this).removeAttr('ajax');
});
>>984
DATASETS で定義してるのはいずれも dataset 以下の項目なので、
src は実際には img.src じゃなくて img.dataset.src を探ってます。
例: https://toyokeizai.net/articles/-/362124
一応data-imgとかdata-delayとかもありますよ。とはいえほどほどでいいと思います。
wedata.net
wedata.net
Tumblrのsiteinfo編集について その3
審査に出したので数日で更新されることでしょう
— Griever (@Griever2) November 22, 2020
uAutoPagerizeの更新を確認しました。ここまで書いてきたTumblrのsiteinfoとお別れです。
ダミーコードに関してはダミー1、ダミー2、そして個別サイトごとのsiteinfoを全て削除しました。exampleUrlで動作が抑制されています。
汎用型のarticleも削除しました。残すと影響が大きいと考えられるためです。
本丸の681に関しては動作を限定しました。
wedata.net
これでもまだ問題が起きるかもしれませんが、その都度対応します。
postに関しては悩みましたが、ひとまず残します。これも問題を確認次第対応します。
wedata.net
ここまでの変更を踏まえsiteinfoを再度表にしておきます
番号 | 名称 | 呼称 | 種別 |
---|---|---|---|
681 | Tumblr | メイン | 汎用 |
31114 | Tumblr - hAtom | hAtom | 汎用 |
31158 | Tumblr - AutoPagerizeFORMAT | APE、APF | 汎用 |
63728 | Tumblr - masonry | masonry | 汎用 |
85560 | Tumblr - post | post | 汎用 |
85562 | Tumblr - newDay | newDay | 集積 |
85564 | Tumblr - content | content | 集積 |
pageElement
Tumblr
descendant::*[count(.//*[@class="permalink"][not(self::a)])>=4][last()]/*
Tumblr - hAtom
//*[contains(concat(' ', @class, ' '), ' hentry ')]
Tumblr - AutoPagerizeFORMAT
//*[contains(concat(' ',@class,' '), ' autopagerize_page_element ')]
Tumblr - masonry
id("blog wrap")[./*[starts-with(@id,"1")]]
Tumblr - post
(//div[@class="post"]|//div[@class="post"]/following-sibling::div[@class="date" or @class="bottom"]|//div[@class="post"]/preceding-sibling::div[@class="date" or @class="bottom"])[count(//*[./div[@class="post"]])=1][count(//div[@class="post"])>2][//div[@class="post"]/following-sibling::*[1][@class="post" or @class="bottom"]]
Tumblr - newDay
descendant::div[@id="newDay"][1]|descendant::div[@id="newDay"][1]/following-sibling::div[@id="newDay"]
Tumblr - content
id("content")
Tumblrのsiteinfo編集について その2
Tumblrのsiteinfo編集について
これまでに関わった複数のURLが適用されるsiteinfoを表にしておきます。
番号 | 名称 | 呼称 | 種別 |
---|---|---|---|
681 | Tumblr | メイン | 汎用 |
31114 | Tumblr - hAtom | hAtom | 汎用 |
31158 | Tumblr - AutoPagerizeFORMAT | APE、APF | 汎用 |
63728 | Tumblr - masonry | masonry | 汎用 |
85560 | Tumblr - post | post | 汎用 |
85573 | Tumblr - article | article | 汎用 |
85562 | Tumblr - newDay | newDay | 集積 |
85564 | Tumblr - content | content | 集積 |
85563 | Tumblr -Dummy for uAutopagerize | ダミー1 | 集積 |
85566 | Tumblr -Dummy for uAutopagerize2 | ダミー2、ダミーラスト | 集積 |
pageElement
Tumblr
(id("posts")[count(//*[@id="posts"])=1]|//*[@class="main" or @role="main"][not(self::main)][not(id("posts"))])[not(@style)][not(.//article[@style])][not(.//*[contains(@class,"masonry")])][not(id("sidebar-nav"))]
Tumblr - hAtom
//*[contains(concat(' ', @class, ' '), ' hentry ')]
Tumblr - AutoPagerizeFORMAT
//*[contains(concat(' ',@class,' '), ' autopagerize_page_element ')]
Tumblr - masonry
id("blog wrap")[./*[starts-with(@id,"1")]]
Tumblr - post
(//div[@class="post"]|//div[@class="post"]/following-sibling::div[@class="date" or @class="bottom"]|//div[@class="post"]/preceding-sibling::div[@class="date" or @class="bottom"])[count(//*[./div[@class="post"]])=1][count(//div[@class="post"])>2][//div[@class="post"]/following-sibling::*[1][@class="post" or @class="bottom"]]
Tumblr - article
//article[not(contains(@class,"loaded"))][count(//*[./article[./following-sibling::article]])=1]
Tumblr - newDay
descendant::div[@id="newDay"][1]|descendant::div[@id="newDay"][1]/following-sibling::div[@id="newDay"]
Tumblr - content
id("content")
Tumblr -Dummy for uAutopagerize
descendant::*[@style="display: none;"][1]
Tumblr -Dummy for uAutopagerize2
descendant::*[@style="display: none;"][last()]