虎(牛)龍未酉2.1

記録帳|+n年後のジブンが思い出せますように……

複数フォルダの作成(Google Apps Script、CotEditor + python)

Google Apps Scriptで複数フォルダを自動的に作成する

 

//
// 自動でフォルダを作成したい  21-May-2017
// 多少の粗はあるけれども、取り敢えず動く
//

// 自動化アーミーナイフ指定
var URL_BOOK = 'https://docs.google.com/spreadsheets/d/xxxx';

//// データシート名取得
var SH_ACTIVE = SpreadsheetApp.getActiveSheet();
var SH_SOURCE = Spreadsheet.getRange(1,2).getValue();


function regFolder() {

// spreadsheet読込->json取得
var sheet = getSheet(URL_BOOK, SH_SOURCE);
var json = convertSheet2Json(sheet);

// フォルダ作成
for(var i=0; i<json.length; i++) {
var line = json[i];
var lflag = line.flag
var folid = line.f_id;
var title = line.f_title;

// Browser.msgBox(lflag + ', ' + folid + ', ' + title) //デバグ用

// flag判定してからフォルダ作成、'y'が入っている時のみフォルダを作る
if(lflag == 'y'){
// Browser.msgBox(lflag + ', ' + folid + ', ' + title) //デバグ用
DriveApp.getFolderById(folid).createFolder(title);
}
}

}

 

function getSheet(bookUrl, sheetName) {
var book = SpreadsheetApp.openByUrl(bookUrl);
return book.getSheetByName(sheetName);
}


// https://gist.github.com/daichan4649/8877801#file-convertsheet2json-gs
function convertSheet2Json(sheet) {
// first line(title)
var colStartIndex = 1;
var rowNum = 1;
var firstRange = sheet.getRange(1, 1, 1, sheet.getLastColumn());
var firstRowValues = firstRange.getValues();
var titleColumns = firstRowValues[0];

// after the second line(data)
var lastRow = sheet.getLastRow();
var rowValues = ;
for(var rowIndex=2; rowIndex<=lastRow; rowIndex++) {
var colStartIndex = 1;
var rowNum = 1;
var range = sheet.getRange(rowIndex, colStartIndex, rowNum, sheet.getLastColumn());
var values = range.getValues();
rowValues.push(values[0]);
}

// create json
var jsonArray = ;
for(var i=0; i<rowValues.length; i++) {
var line = rowValues[i];
var json = new Object();
for(var j=0; j<titleColumns.length; j++) {
json[titleColumns[j]] = line[j];
}
jsonArray.push(json);
}
return jsonArray;

  • フラグカラムに'y'が入っている行だけ登録する。'y'以外は全部無視するので、「済み」とか「今度」とか書いておける
  • getSheet()とconvertSheet2Json()は前から使っているやつ流用

 

CotEditor + python でフォルダを作る

1)スクリプトをエディタ指定のフォルダに置く「com.coteditor.CotEditor」

2)スクリプトに実行権限を付与「chmod 755 xxx.py」

3)入力ソースデータの形式を決め、データを入れた

4)CotEditorからスクリプトを実行

 

スクリプト:

#!/usr/bin/env python
# *-# -*- coding: utf-8 -*-
# %%%{CotEditorXInput=AllText}%%%
# %%%{CotEditorXOutput=AppendToAllText}%%%

import sys
import os

for line in sys.stdin:
# シャープで始まる行はスキップ
if line.startswith('#'):
continue

# /Usersで始まる行は、親フォルダを指定していると見做す
elif line.startswith('/Users'):
path = line.rstrip('\n')

# 20で始まる行は、作成フォルダを指定していると見做し、フォルダ作成
elif line.startswith('20'):
folder = line.rstrip('\n')
os.mkdir(path+folder)

print("done") 

 

登録フォルダデータ(.txt)

############################################################
# このテキストファイルからフォルダを自動的に作成する(21-May-2017)
# /Users から始まる行は、フォルダを作成する場所を指定 (A)
# *** /で終わること! ***
# '20'から始まる行は、作成するフォルダ名 (B)
# AフォルダにBフォルダを作成する
# 空行は無視する
# '#'から始まる行はコメント行としてスキップする
############################################################

/Users/user/Download/

【済み】2017.0615.AAA
【済み】2017.0721.BBB
// 2017.1020.CCC
// 2017.1117.DDD
2017.1219.EEE

上記の例だと、/Users/user/Download/に、2017.1219.EEEフォルダを作る(その他の行は無視)

 

 

なんだか苦労した、解像度の切り替え by AppleScript (Automator)

やりたいことは単純で、

f:id:masatora_bd5:20170517231604p:plain

f:id:masatora_bd5:20170517231637p:plain

の切り替えが頻発するので、簡単にやれるようにしたかったわけ。

いつも通り、ワークフローで作り、アプリ書き出しし、

今回はtoggleRes.appにしたので、spotlight > toggleと入力して起動。

 

できたコードはこんな感じ(インデント崩れてるけど)

on run {input, parameters}

 

if application "System Preferences" is running then

tell application "System Preferences" to quit

end if

 

tell application "System Preferences"

set current pane to pane "com.apple.preference.displays"

end tell

 

tell application "System Events"

 

if UI elements enabled then

 

tell process "System Preferences"

if value of radio button 1 of radio group 1 of tab group 1 of window 1 is 1 then

click radio button 2 of radio group 1 of tab group 1 of window 1

click radio button 4 of radio group 1 of group 2 of tab group 1 of window 1

else if value of radio button 2 of radio group 1 of tab group 1 of window 1 is 1 then

click radio button 1 of radio group 1 of tab group 1 of window 1

end if

end tell

 

quit application "System Preferences"

 

else

 

tell application "System Preferences"

activate

set current pane to pane "com.apple.preference.security"

display dialog "UI element スクリプティングが有効になっていません。 「プライバシー」タブの「下のアプリケーションにコンピュータの制御を許可」にチェックを入れて下さい。"

end tell

 

end if

 

end tell

 

return input

 

end run

 何が良くて何が良くないのかさっぱりわからないけれど

(たまにエラーが起きる)、

 

・システム環境設定が起動していたらquitする

にしてみた。その他いろいろ試してみたけど(アンカーを使うとか)、

結局何が良くて何が悪いかわからん。

 

とりあえず動くからいいやと、いい加減な終わらせ方。

 

今回もこちらにかなりお世話になった:

AppleScriptでモニタの明るさを調整したい

https://discussionsjapan.apple.com/thread/10062506?start=0&tstart=0

 

 

 

パワーポイントをPDFに変換する

パワーポイントをPDFに変換するのを自動化しようと思った

結局失敗しているが、ログ

 

  • windowsPythonをインストール(3.6.1, 2.7.13)
  • 対応するpywin32をインストール(import win32comで確認)

 

■wordからtxtを抜くスクリプトを改変してなんとかならんかと思って挫折

www.yukun.info

 

■pptToPdfを使えないか(改修は後としても)と思って挫折

Powerpoint to PDF Converter · GitHub

 

とにかくパワポを開いて、PDF形式で保存、で良いのではと思っているのだが、なぜだかなかなかうまくいかないのである。