QGis Merge Equally-named and Grouped Layers

inspired by https://gis.stackexchange.com/a/361296

import processing

grouped_layers_by_name = {}
distinct_layer_names = set()

project_layers = []

for l in QgsProject.instance().layerTreeRoot().children():
	project_layers += l.children()

for layer_item in project_layers:
    layer_name = layer_item.name()
    distinct_layer_names.add(layer_name)
    grouped_layers_by_name[layer_name] = QgsProject.instance().mapLayersByName(layer_name)

print('Total number of distinct layers: ' + str(len(distinct_layer_names)))

for layer_name in distinct_layer_names:
    print('Processing layer: ' + layer_name + '...', end=' ')
    merged_layer_file_name = './5000/' + layer_name + '.gpkg'
    ls = grouped_layers_by_name.get(layer_name)
    if ls is None:
        continue
    print(ls)
    alg_params = {'LAYERS': ls, 'OUTPUT': merged_layer_file_name}
    result = processing.run('native:mergevectorlayers', alg_params)
    print(' done.')

print('All layers have been merged.')

모에니/모애니 다운로드

수정: 이하 내용 다 갖다버리시고 모에니에서 영상 다 받으면 개발자 도구 콘솔에 이것만 붙여넣으시면 됩니다.

function downloadBlob(blob, name) {
  const link = document.createElement("a")
  link.href = blob
  link.download = name
  document.body.appendChild(link)
  link.dispatchEvent(new MouseEvent('click', { bubbles: true, cancelable: true, view: window }))
  document.body.removeChild(link)
}

this.client.torrents[0].files[0].MoeVideoBlob((p, q) => downloadBlob(q, this.client.torrents[0].files[0].path))

플레이어에 우클릭을 해도, 네트워크 흐름을 살펴봐도, 캐시를 살펴봐도 이상한 파일 뭉치만 있습니다. 하나 잡아다 까 봐도 제대로 된 내용물은 보이지 않습니다.

준비물: Webtorrent 클라이언트, 크롬 등의 (개발자 도구가 제대로 된) 브라우저

원하는 애니 페이지에 들어가서, 화를 선택하기 전에 개발자 도구로 들어갑니다.
Sources 탭에서 player.moeni.org 호스트의 lib.php 어쩌고 파일을 열고, Prettyprint 처리합니다.
ctrl-F를 이용해서 class Torrent를 찾고, 멤버함수 get downloaded()의 마지막 return downloaded에 왼쪽의 줄 번호를 눌러 브레이크포인트를 걸어 줍니다.
이제 화를 선택합니다.
그대로 Paused on debugger가 뜨면, Console 탭으로 전환하여, 다음을 붙여넣습니다.

String.fromCharCode.apply(null, this.client.peerIdBuffer)

이상한 20자리 문자열이 튀어나올 텐데, 이것이 Peer ID입니다. 따옴표 빼고 적당히 옮겨 둡시다.

this.magnetURI

이것은 WebTorrent의 Magnet URL입니다. 역시 따옴표 빼고 적당히 옮겨 둡시다.

이제 WebTorrent 클라이언트를 수정해서 Peer ID를 적용해야 합니다.

일단 클라이언트를 켜 주고, ctrl-shift-P를 눌러 webtorrent.js에 개발자 도구를 띄워 줍니다. (개발자 도구에 기본적으로 열려 있는 파일입니다)

// Line 54의
const PEER_ID = Buffer.from(VERSION_PREFIX + crypto.randomBytes(9).toString('base64'))

// 를 아래처럼 바꾸어 준다: 

const PEER_ID = Buffer.from('아까 복사해 두었던 Peer ID')
// const PEER_ID = Buffer.from('-WW0105-+N3Q18UAoMRp') 같이 되어야 한다. (이 줄은 필요 없습니다)

Peer ID 수정이 완료되었습니다. 앞에서 옮겨 둔 Magnet URL을 붙여넣기해 영상을 받으면 됩니다.