Notion-MW
 
Notion-MW
 
(同じ利用者による、間の14版が非表示)
10行目: 10行目:
* chromeを起動するところの<code>&#45;&#45;app&#45;id&#61;jgeocpdicgmkeemopbanhokmhcgcflmi</code>の部分については[[Webブラウザ(Chrome)|Webブラウザ(Chrome)]]のPWAのところを参照。
* chromeを起動するところの<code>&#45;&#45;app&#45;id&#61;jgeocpdicgmkeemopbanhokmhcgcflmi</code>の部分については[[Webブラウザ(Chrome)|Webブラウザ(Chrome)]]のPWAのところを参照。


<pre class="dummy_str_javascript">; ウインドウのアクティベート時に強引な方法を用いる(FlashWindowだけで終わってしまうのを避ける)?
<syntaxhighlight lang="plain text">; ウインドウのアクティベート時に強引な方法を用いる(FlashWindowだけで終わってしまうのを避ける)?
#WinActivateForce
#WinActivateForce


49行目: 49行目:


; この文字列で対象アプリケーションの起動を検出
; この文字列で対象アプリケーションの起動を検出
Global TitleStr := &quot;Twitter&quot;
Global TitleStr := "Twitter"


SetBorderlessWindow(ByRef this_id)
SetBorderlessWindow(ByRef this_id)
{
{
     ; 非クライアント領域のレンダリングを無効に
     ; 非クライアント領域のレンダリングを無効に
     DllCall(&quot;dwmapi\DwmSetWindowAttribute&quot;, &quot;ptr&quot;, this_id, &quot;uint&quot;, DWMWA_NCRENDERING_POLICY := 2, &quot;int*&quot;, DWMNCRP_DISABLED := 1, &quot;uint&quot;, 4)
     DllCall("dwmapi\DwmSetWindowAttribute", "ptr", this_id, "uint", DWMWA_NCRENDERING_POLICY := 2, "int*", DWMNCRP_DISABLED := 1, "uint", 4)
     ;これらは役に立たない
     ;これらは役に立たない
     ;WinSet, Style, -0x80000000, ahk_id %this_id%
     ;WinSet, Style, -0x80000000, ahk_id %this_id%
86行目: 86行目:
}
}


ProfileNames:=[&quot;&quot;&quot;Default&quot;&quot;&quot;, &quot;&quot;&quot;Profile 6&quot;&quot;&quot; ,&quot;&quot;&quot;Profile 5&quot;&quot;&quot;]
ProfileNames:=["""Default""", """Profile 6""" ,"""Profile 5"""]
Wins:=[]
Wins:=[]
Loop, %num_of_decks%
Loop, %num_of_decks%
94行目: 94行目:
     Prof := ProfileNames[A_Index]
     Prof := ProfileNames[A_Index]
     ; idはtwitter.comが提供するマニフェストからchromeが計算した結果必ずこれになる
     ; idはtwitter.comが提供するマニフェストからchromeが計算した結果必ずこれになる
     Run, &quot;C:\Program Files\Google\Chrome\Application\chrome_proxy.exe&quot; --profile-directory=%Prof% --app-id=jgeocpdicgmkeemopbanhokmhcgcflmi
     Run, "C:\Program Files\Google\Chrome\Application\chrome_proxy.exe" --profile-directory=%Prof% --app-id=jgeocpdicgmkeemopbanhokmhcgcflmi


     Loop, {
     Loop, {
157行目: 157行目:
         WinClose ahk_id %wintemp%
         WinClose ahk_id %wintemp%
     }
     }
ExitApp</pre>
ExitApp</syntaxhighlight>
* 必要に応じて、後述の狭い画面向けのCSSと併用するとよい。
* 必要に応じて、後述の狭い画面向けのCSSと併用するとよい。
* 需要があれば、画面を縦だけでなく横に分割するなどの機能拡張を実装するかもしれない。
* 需要があれば、画面を縦だけでなく横に分割するなどの機能拡張を実装するかもしれない。
166行目: 166行目:
== 狭い画面向けのTwitterのCSS ==
== 狭い画面向けのTwitterのCSS ==


StylusなどのCSSを適用してくれる拡張機能をインストールし、以下を入力する。コメントで簡単に説明を書いたので必要に応じて数値の変更やコメントアウトなどするとよい
StylusなどのCSSを適用してくれる拡張機能をインストールし、以下を入力する。コメントで簡単に説明を書いたので必要に応じて数値の変更やコメントアウトなどするとよい。


* Stylusに類似のものでStylishというのがあったが、個人情報の収集かなんかで問題になったので使わない方が良さそう
* Stylusに類似のものでStylishというのがあったが、個人情報の収集かなんかで問題になったので使わない方が良さそう


<pre class="dummy_str_c#">/*一応参考(ただし結局ほぼ使わず) https://polygonote.com/2022_0308_18019/ */
<syntaxhighlight lang="css">/*一応参考(ただし結局ほぼ使わず) https://polygonote.com/2022_0308_18019/ */
/* メインエリアの幅の制約を解除 */
/* メインエリアの幅の制約を解除 */
main
main
182行目: 182行目:
}
}


/*最も広いときの幅の制約の解除*/
.r-113js5t {
    width: 100%;
}
/*比較的広いときの幅の制約の解除*/
/*比較的広いときの幅の制約の解除*/
.r-rthrr5 {
.r-rthrr5 {
194行目: 199行目:
     width: 100%;
     width: 100%;
}
}
 
/*DM欄の幅を確保*/
section[aria-labelledby="root-header"]{
    width: 30%;
}
section[aria-labelledby="detail-header"]{
    width: 70%;
}
/*トレンドエリア非表示*/
/*トレンドエリア非表示*/
div[data-testid=&quot;sidebarColumn&quot;]{
div[data-testid="sidebarColumn"]{
     display: none;
     display: none;
}
}
207行目: 218行目:


/*左側バナーのサイズを常に狭くする(オリジナルのサイトで最も狭くしたときの値は68で、ここからpadding-leftとpadding-rightで8ずつ引くと52になる)*/
/*左側バナーのサイズを常に狭くする(オリジナルのサイトで最も狭くしたときの値は68で、ここからpadding-leftとpadding-rightで8ずつ引くと52になる)*/
header[role=&quot;banner&quot;] &gt; div,
header[role="banner"] > div,
header[role=&quot;banner&quot;] &gt; div &gt; div &gt; div
header[role="banner"] > div > div > div
{
{
     width:52px
     width:52px
}
}
 
/*幅が広いときの左側バナーの余白を無効に*/
/*header[role=&quot;banner&quot;],  こっちは不要?*/
header[role="banner"] > div {
header[role=&quot;banner&quot;] &gt; div &gt; div &gt; div &gt; div &gt; div &gt; a/*「ツイートする」ボタンのサイズ*/
    margin-left: 0px;
}
/*header[role="banner"],  こっちは不要?*/
header[role="banner"] > div > div > div > div > div > a/*「ツイートする」ボタンのサイズ*/
{
{
     max-width: 100%;
     max-width: 100%;
  padding-left: 0px;
  padding-right: 0px;
   
}
}


227行目: 244行目:


/*幅が広いときでも各種バナーアイコンを常に中央揃え*/
/*幅が広いときでも各種バナーアイコンを常に中央揃え*/
header[role=&quot;banner&quot;] &gt; div &gt; div &gt; div &gt; div &gt; div,
header[role="banner"] > div > div > div > div > div,
header .r-1habvwh
header .r-1habvwh
{
{
238行目: 255行目:


/*幅が広いときでもバナーの各種アイコンの横に「通知」などの文字は出さない*/
/*幅が広いときでもバナーの各種アイコンの横に「通知」などの文字は出さない*/
header &gt; div &gt; div &gt; div &gt; div.css-1dbjc4n.r-usiww2 &gt; div &gt; div &gt; div.css-1dbjc4n.r-1wbh5a2.r-dnmrzs.r-1ny4l3l,
/*これらは古いのでおそらく不要
header &gt; div &gt; div &gt; div &gt; div.css-1dbjc4n.r-usiww2 &gt; div &gt; div &gt; div.css-1dbjc4n.r-obd0qt.r-16y2uox,
header > div > div > div > div.css-1dbjc4n.r-usiww2 > div > div > div.css-1dbjc4n.r-1wbh5a2.r-dnmrzs.r-1ny4l3l,
nav &gt; div &gt; div &gt; div.css-901oao.css-1hf3ou5.r-18jsvk2.r-1tl8opc.r-adyw6z.r-135wba7.r-1joea0r.r-88pszg.r-bcqeeo.r-qvutc0,
header > div > div > div > div.css-1dbjc4n.r-usiww2 > div > div > div.css-1dbjc4n.r-obd0qt.r-16y2uox,
nav &gt; a &gt; div &gt; div.css-901oao.css-1hf3ou5.r-18jsvk2.r-1tl8opc.r-adyw6z.r-135wba7.r-1joea0r.r-88pszg.r-bcqeeo.r-qvutc0{
nav > div > div > div.css-901oao.css-1hf3ou5.r-18jsvk2.r-1tl8opc.r-adyw6z.r-135wba7.r-1joea0r.r-88pszg.r-bcqeeo.r-qvutc0,
nav > a > div > div.css-901oao.css-1hf3ou5.r-18jsvk2.r-1tl8opc.r-adyw6z.r-135wba7.r-1joea0r.r-88pszg.r-bcqeeo.r-qvutc0,
*/
header[role="banner"] > div > div > div > div > div > nav > a > div > div:nth-child(2),
header[role="banner"] > div > div > div > div > div > nav > button > div > div:nth-child(2),/*もっと見る*/
header[role="banner"] > div > div > div > div > div > nav > div > div > div:nth-child(2),
header[role="banner"] > div > div > div > div > div > button > div:nth-child(n+2),/*下のアイコン*/
header[role="banner"] > div > div > div > div.r-usiww2 > div > div > div:nth-child(n+2){
     display:none
     display:none
}
}


/*画像サイズ調整*/
/*画像サイズ調整*/
/*div.css-1dbjc4n.r-1ets6dv.r-1867qdf.r-rs99b7.r-1loqt21.r-adacv.r-1ny4l3l.r-1udh08x.r-o7ynqc.r-6416eg &gt; div &gt; div.css-1dbjc4n.r-14gqq1x &gt; div, /*引用ツイート内画像専用。不要*/
/*div.css-1dbjc4n.r-1ets6dv.r-1867qdf.r-rs99b7.r-1loqt21.r-adacv.r-1ny4l3l.r-1udh08x.r-o7ynqc.r-6416eg > div > div.css-1dbjc4n.r-14gqq1x > div, /*引用ツイート内画像専用。不要*/


/*ツイート画像・動画。しかし一行下のもののほうが動画を再生時のみ枠に収めて最大化ボタンを押せるようにできるので、こちらは不要そう。
/*ツイート画像・動画。しかし一行下のもののほうが動画を再生時のみ枠に収めて最大化ボタンを押せるようにできるので、こちらは不要そう。
article[data-testid=&quot;tweet&quot;] &gt; div &gt; div &gt; div.css-1dbjc4n.r-18u37iz &gt; div.css-1dbjc4n.r-1iusvr4.r-16y2uox.r-1777fci.r-kzbkwu &gt; div.css-1dbjc4n.r-1ssbvtb.r-1s2bzr4 &gt; div.r-9aw3ui &gt; div &gt; div &gt; div,*/
article[data-testid="tweet"] > div > div > div.css-1dbjc4n.r-18u37iz > div.css-1dbjc4n.r-1iusvr4.r-16y2uox.r-1777fci.r-kzbkwu > div.css-1dbjc4n.r-1ssbvtb.r-1s2bzr4 > div.r-9aw3ui > div > div > div,*/
article[data-testid=&quot;tweet&quot;] &gt; div &gt; div &gt; div.css-1dbjc4n.r-18u37iz &gt; div.css-1dbjc4n.r-1iusvr4.r-16y2uox.r-1777fci.r-kzbkwu &gt; div.css-1dbjc4n.r-1ssbvtb.r-1s2bzr4 &gt; div.r-9aw3ui &gt; div &gt; div &gt; div &gt; div,/*再生時の動画コンテンツ。サムネイル状態だとうまく適用外になってくれる*/
/*article[data-testid="tweet"] > div > div > div.css-1dbjc4n.r-18u37iz > div.css-1dbjc4n.r-1iusvr4.r-16y2uox.r-1777fci.r-kzbkwu > div.css-1dbjc4n.r-1ssbvtb.r-1s2bzr4 > div.r-9aw3ui > div > div > div > div,再生時の動画コンテンツ。サムネイル状態だとうまく適用外になってくれる*/
/*上2つはおそらくもう機能していないので下を追加*/
div:has(> div > div > div[data-testid="videoPlayer"]),
 
/*article[data-testid="tweet"] > div > div > div > div > div > div > div > div > div:has(> div> div > div > div > div > div > div > a > div > div[data-testid="tweetPhoto"]),/*引用ツイート内複数画像*/
 
/*article[data-testid="tweet"] > div > div > div > div > div > div > div > div > div > div > div > div > div > div > div > div:has(> div > a > div > div[data-testid="tweetPhoto"]),/*引用ツイート内複数画像(少なめ)*/
 
article[data-testid="tweet"] > div > div > div > div > div > div > div > div > div > div > div:has(> div > div > a > div > div > div[data-testid="tweetPhoto"]),/*引用画像*/
article[data-testid="tweet"] > div > div > div > div > div > div > div > div > div:has(> div > div > a > div > div > div[data-testid="tweetPhoto"]),/*画像*/
 
div:has(a > div > div > img):has(> a > div > svg),/*Grokによる画像*/
 
aaadiv:has(> div> div> div[data-testid="previewInterstitial"]),/*四角い動画(・画像?)*/
 
div[data-testid="testCondensedMedia"] > div > div,/*複数枚入ってるものは直後のスタイルで上書きされる*/
 
article[data-testid="tweet"] > div > div > div > div > div > div > div > div > div:has(> div > div[data-testid="tweetPhoto"] > div > div > div > div[data-testid="placementTracking"] > div[data-testid="videoPlayer"]),/*動画*/
article[data-testid="tweet"] > div > div > div > div > div > div > div > div > div > div:has(> div[data-testid="tweetPhoto"] > div > div > div > div[data-testid="placementTracking"] > div[data-testid="videoPlayer"]),/*動画(内側も)*/
article[data-testid="tweet"] > div > div > div > div > div > div > div > div > div > div > div > div:has(> div[data-testid="tweetPhoto"] > div > div > div > div[data-testid="placementTracking"] > div[data-testid="videoPlayer"]),/*引用動画*/
 
 
 


/*引用ツイート画像・動画。しかし一行下のもののほうが動画を再生時のみ枠に収めて最大化ボタンを押せるようにできるので、こちらは不要そう。
/*引用ツイート画像・動画。しかし一行下のもののほうが動画を再生時のみ枠に収めて最大化ボタンを押せるようにできるので、こちらは不要そう。
article[data-testid=&quot;tweet&quot;] &gt; div &gt; div &gt; div.css-1dbjc4n.r-18u37iz &gt; div.css-1dbjc4n.r-1iusvr4.r-16y2uox.r-1777fci.r-kzbkwu &gt; div.css-1dbjc4n.r-1ssbvtb.r-1s2bzr4 &gt; div &gt; div &gt; div &gt; div.r-14gqq1x &gt; div,/*引用ツイートの画像・動画*/
article[data-testid="tweet"] > div > div > div.css-1dbjc4n.r-18u37iz > div.css-1dbjc4n.r-1iusvr4.r-16y2uox.r-1777fci.r-kzbkwu > div.css-1dbjc4n.r-1ssbvtb.r-1s2bzr4 > div > div > div > div.r-14gqq1x > div,/*引用ツイートの画像・動画*/
article[data-testid=&quot;tweet&quot;] &gt; div &gt; div &gt; div.css-1dbjc4n.r-18u37iz &gt; div.css-1dbjc4n.r-1iusvr4.r-16y2uox.r-1777fci.r-kzbkwu &gt; div.css-1dbjc4n.r-1ssbvtb.r-1s2bzr4 &gt; div &gt; div &gt; div &gt; div.r-14gqq1x &gt; div&gt; div&gt; div,/*同上。*/
article[data-testid="tweet"] > div > div > div.css-1dbjc4n.r-18u37iz > div.css-1dbjc4n.r-1iusvr4.r-16y2uox.r-1777fci.r-kzbkwu > div.css-1dbjc4n.r-1ssbvtb.r-1s2bzr4 > div > div > div > div.r-14gqq1x > div> div> div,/*同上。*/


/*以下2つは、それぞれの子要素のdivに適用するよりこのほうがうまくいった*/
/*以下2つは、それぞれの子要素のdivに適用するよりこのほうがうまくいった*/
div[data-testid=&quot;card.wrapper&quot;] &gt; div[data-testid=&quot;card.layoutLarge.media&quot;] &gt; a,/*埋め込み記事の画像*/
div[data-testid="card.wrapper"] > div[data-testid="card.layoutLarge.media"] > a,/*埋め込み記事の画像*/
div[data-testid=&quot;card.wrapper&quot;] &gt; div[data-testid=&quot;card.layoutLarge.media&quot;] &gt; div/*埋め込み記事の動画。サイトによっては画像も引っかかる?*/
div[data-testid="card.wrapper"]:has( > div[data-testid="card.layoutLarge.media"] > a),/*埋め込み記事の画像*/
div[data-testid="card.wrapper"] > div[data-testid="card.layoutLarge.media"] > div/*埋め込み記事の動画。サイトによっては画像も引っかかる?*/
{
{
max-height: 200px;
max-height: 200px;
266行目: 313行目:
}
}


article[data-testid="tweet"] > div > div > div > div > div > div > div > div > div:has(> div > div > div > div > div > a > div > div[data-testid="tweetPhoto"]),/*複数画像(2枚)*/
article[data-testid="tweet"] > div > div > div > div > div > div > div > div > div > div:has(> div > div> div > div[data-testid="tweetPhoto"] > div > div > div > div[data-testid="placementTracking"] > div[data-testid="videoPlayer"]),/*複数動画(2枚)*/
article[data-testid="tweet"] > div > div > div > div > div > div > div > div > div > div > div:has(> div > div > div> div > div > a > div > div[data-testid="tweetPhoto"]),/*引用ツイート内複数画像(2枚)*/
article[data-testid="tweet"] > div > div > div > div > div > div > div > div > div > div > div > div:has(> div > div> div > div[data-testid="tweetPhoto"] > div > div > div > div[data-testid="placementTracking"] > div[data-testid="videoPlayer"])/*引用ツイート内複数動画(2枚)*/
{
    max-height: 200px;
    max-width: 1000px;
    justify-content: center;
    overflow:hidden;
}
article[data-testid="tweet"] > div > div > div > div > div > div > div > div > div:has(> div > div > div > div > div > div > a > div > div[data-testid="tweetPhoto"]),/*複数画像(3, 4枚)*/
article[data-testid="tweet"] > div > div > div > div > div > div > div > div > div > div:has(> div > div> div > div > div[data-testid="tweetPhoto"] > div > div > div > div[data-testid="placementTracking"] > div[data-testid="videoPlayer"]),/*複数動画(3, 4枚)*/
article[data-testid="tweet"] > div > div > div > div > div > div > div > div > div> div> div:has( > div > div > div > div> div > div> a > div > div[data-testid="tweetPhoto"]),/*引用ツイート内複数画像(3, 4枚)*/
article[data-testid="tweet"] > div > div > div > div > div > div > div > div > div > div > div > div:has(> div > div> div > div > div[data-testid="tweetPhoto"] > div > div > div > div[data-testid="placementTracking"] > div[data-testid="videoPlayer"])/*引用ツイート内複数動画(3, 4枚)*/
{
    max-height: 400px;
    max-width: 1000px;
    justify-content: center;
    overflow:hidden;
}
/*画像の余白の色を枠線と合わせる*/
/*画像の余白の色を枠線と合わせる*/
div[data-testid=&quot;card.wrapper&quot;] &gt; div[data-testid=&quot;card.layoutLarge.media&quot;],
div[data-testid="card.wrapper"] > div[data-testid="card.layoutLarge.media"],
article[data-testid=&quot;tweet&quot;] &gt; div &gt; div &gt; div.css-1dbjc4n.r-18u37iz &gt; div.css-1dbjc4n.r-1iusvr4.r-16y2uox.r-1777fci.r-kzbkwu &gt; div.css-1dbjc4n.r-1ssbvtb.r-1s2bzr4 &gt; div &gt; div &gt; div &gt; div.r-14gqq1x
article[data-testid="tweet"] > div > div > div.css-1dbjc4n.r-18u37iz > div.css-1dbjc4n.r-1iusvr4.r-16y2uox.r-1777fci.r-kzbkwu > div.css-1dbjc4n.r-1ssbvtb.r-1s2bzr4 > div > div > div > div.r-14gqq1x
{
{
     background-color:rgb(232, 232, 232)
     background-color:rgb(232, 232, 232)
}
}


div[data-testid=&quot;card.wrapper&quot;] &gt; div[data-testid=&quot;card.layoutLarge.media&quot;] &gt; div &gt;div[style=&quot;padding-bottom: 100%;&quot;]/*埋め込み記事の動画*/
div[data-testid="card.wrapper"] > div[data-testid="card.layoutLarge.media"] > div >div[style="padding-bottom: 100%;"]/*埋め込み記事の動画*/
{
{
     /*不要? display:none*/
     /*不要? display:none*/
}
}
/*「さらに表示」があるツイート*/
/*article[data-testid="tweet"]:has(> div > div > div > div > div > div[data-testid="tweet-text-show-more-link"]),*/
/*AdBlock*/
/* article[data-testid="tweet"]:has(> div > div > div > div > div:nth-child(5) > div > svg){
    display:none
} */
/*Grok(広告だっけ?)*/
div[data-testid="cellInnerDiv"]:has(> div > div >  div > div[data-testid="inlinePrompt"]){
    display:none
}


/*「ホーム」ではなくツイート単独ページ(https://twitter.com/###/status/#########?s=20)用。nth-child(3)がないとTL上の画像にも適用されてしまう*/
/*「ホーム」ではなくツイート単独ページ(https://twitter.com/###/status/#########?s=20)用。nth-child(3)がないとTL上の画像にも適用されてしまう*/
article[data-testid=&quot;tweet&quot;] &gt; div &gt; div &gt; div:nth-child(3) &gt; div &gt; div.css-1dbjc4n.r-1ssbvtb.r-1s2bzr4 &gt; div &gt; div &gt; div &gt; div
article[data-testid="tweet"] > div > div > div:nth-child(3) > div > div.css-1dbjc4n.r-1ssbvtb.r-1s2bzr4 > div > div > div > div
{
{
   max-width: 800px;
   max-width: 800px;
312行目: 394行目:
*/
*/
/*「ホーム」の文字を中央揃え*/
/*「ホーム」の文字を中央揃え*/
main &gt; div &gt; div &gt; div &gt; div &gt; div &gt; div:first-child &gt; div:first-child &gt; div:first-child &gt; div &gt; div &gt; div &gt; div &gt; div .r-1habvwh
main > div > div > div > div > div > div:first-child > div:first-child > div:first-child > div > div > div > div > div .r-1habvwh
{
{
     -webkit-align-items: center;
     -webkit-align-items: center;
371行目: 453行目:
}*/
}*/
/*検索ボックスの幅を小さく*/
/*検索ボックスの幅を小さく*/
input[data-testid=&quot;SearchBox_Search_Input&quot;]
/*input[data-testid="SearchBox_Search_Input_label"]
{
{
     padding-top: 0px;
     padding-top: 0px;
     padding-bottom: 0px;
     padding-bottom: 0px;
      
}*/
}</pre>
.r-ero68b {
     min-height: 20px;
}</syntaxhighlight>
[[Category:IT]]{{#seo:|title={{FULLPAGENAME}} - Turgenev's Wiki}}
[[Category:IT]]{{#seo:|title={{FULLPAGENAME}} - Turgenev's Wiki}}