エントリー

2012年01月の記事は以下のとおりです。

アドエス改良計画:UKTvListからRD-X9に予約

1月3日更新

RD-X9にはUKTvListからは予約ができない。
メール予約の形式も違うのでメール予約もできない
そこでMortScriptでUKTvListからRD-X9に予約を入れる為、あれこれしてみる。
「QuicTodayからmortscriptwrapper経由で文字列を受け取って色々するスクリプト」を
参考&改造してあれこれしている個人的メモですので
このままコピっても動かないかもしれません。

「channels.tsv」のチャンネル設定を
スカパー!
1UKTVSP724SP724アニマックス0---
地デジ
8UKTV081081フジテレビ08

「mortscriptwrapper」の名前をtmailms.exeにini、mscrも同じにして、
Windowsフォルダーに三つのファイルを移動

mailto形式をtmailms.exeに渡すため、レジストリの
HKEY_CLASSES_ROOT\mailto\Shell\Open\Command\Default
[tmail.exe %1]とある部分を[tmailms.exe "%1"]に変更。
””を忘れると配列渡せないので注意

ただ、このままだとmailto経由のメールが全部tmailms.exeに渡されてしまうので、
予約メール以外はメーラーに渡すように何とかしたい

tmailms.mscr


# 改造版、UKTVLISTからRD-X9へ予約MAILを送れるようにする
##############################
# ファイル・フォルダ設定
# SpeedMail12.exeのフルパス エッジe-mail用
sm12 = "\microSD\SpeedMail12\LeMail207.exe"
# SimpleSendMail.exeのフルパス
ssm = "\Program Files\simpleSendMail\simpleSendMail.exe"
# UrlDecode.mscrのフルパス
urldecode = "\Program Files\MortScript\lib\UrlDecode.mscr"
##############################
# url設定# uktv
flg = "SCUKTV"
sflg = "SCUKTVSP"
##############################
# 送信元メールアドレス設定
mail = "メールアドレス"
# 付加するタグ 1 X9、2 レグザ
tag1 = "open パス prog add"
tag2 = "open パス"
# 送信先メールアドレス
rdad = "メールアドレス"
#######################
# 改行専用文字
r = "/"
# 挿入スペース
sp = " "
# 変数囲い込み用
d='"'
fd="D"
##################
###
#該当がなかったらメーラーに渡すようにしたいがまだ
x = Find( ap, flg )

if(x>0)

# 文字列を「 」で分割して配列data[]に格納
j = 1
ForEach data[j] in split( ap , " " , 0 )
j = j+1
EndForEach

#bodyに含まれるフラグと不要部分を消す
ch = Replace( data[4] , "SCUKTV" , "" )
kaisi = data[5]#開始時間
owari = data[6] #終了時間
hiniti = data[7] #日付
ban = data[9]#番組名
bsetu = data[11]#番組説明


#BCCを送信先機種判定に使う
#####1216
bc = data[13]#&bcc= 送信先機種の判別
bc = Replace( bc , "&bcc=" , "" )
#Message ( ap)
#Message ( bc)


Switch ( bc )
Case ( "RD-X9" )
#Message ( bc)
s = Find( ap, sflg )


tag = tag1
if(s>0)

ch = ch
else

ch = fd&ch

EndIf


Case ( "REGZA" )
#Message ( bc)
tag = tag2



EndSwitch


######################
#Sub rdcil
######1216
#足りない年を追加、注、今の年を入れるので年をまたぐ時は無理
nen = FormatTime( "Y", TimeStamp() + 86400 )
#nen=2012#年をまたぐ予約の時に#をはずす暫定対処
#今年中に日にちがない場合、次の年に

syosi=tag & sp & nen & hiniti & sp & kaisi & sp & owari & sp & ch & "^NL^" & ban & "^NL^" & bsetu
#syosi="\a\b\t\n\v\f\r*\xab*\x0ab*\xa*b%20*nbsp;*syosi1\r*\n@\b\t\s\"
#SetClipText ( syosi ) #クリックボードにコピー


address = rdad
txt = syosi
#Call( "dec" )
title = "UKTV*"&bc&":"&ban
txt = Replace( txt , r , "\r" )
#Message ( txt)

If( Question(txt & "^NL^^NL^予約メールを送信します、よろしいですか?" , "YesNo" ))
Call( "mail" )

Else
SetClipText( txt )
#Message( "送信しないで終了します。メッセージはクリップボードにコピーしました。" )

EndIf

Else
Message( "予約メール以外" )

EndIf

Exit

#EndSub

##############################
# utf-8デコードサブルーチン
Sub dec

# 分割用記号「'」を付加
txt1 = Replace( txt1 , "%" , "'%" )


# 半角空白を全角空白に変換
txt1 = Replace( txt1 , "%20" , " " )

# エンコードされた文字列を「'」で分割して配列data[]に格納
j = 1
ForEach data[j] in split( txt1 , "'" , 0 )

# 配列data[j]の先頭が「%」かつ3文字以上あったら
If 3 ">*1

# 配列data[j]の3文字目以降を配列data[j+1]に格納
data[j+1] = SubStr( data[j] , 4 )

# 配列data[j]の先頭から3文字目までを配列data[j]に格納
data[j] = SubStr( data[j] , 1 , 3 )

# 配列カウンタを2進める
j = j + 2

# 上記以外は配列カウンタを1進める
Else
j = j + 1

EndIf
EndForEach

# 配列data内で「%○○」が3連続していたら
For i = 1 to j
If*2

# その部分をurldecode.mscrに投げる
CallScriptFunction( urldecode , txt2 , data[i] & data[i+1] & data[i+2] )

# 返ってきた文字をtxtに追加して参照配列を2進める
txt = txt & txt2
i = i + 2
# それ以外の部分(半角英数等)はそのままtxtに追加
Else
txt = txt & data[i]
EndIf
Next

EndSub

##############################
# メール送信サブルーチン
Sub mail

# 送信判定ループ開始(resの値が1の間ループ)
res = 2
While( res = 2 )

# SimpleSendMailで送信を試みて戻り値を取得
#res = RunWait( ssm , address & " " & title & " " & txt )
#res = RunWait( ssm , address & " " & title & " " & d & txt & d)

#エッジe-mail用
txt = Replace( txt , " " , "%20" )
res = RunWait( sm12 , address & " " & title & " " & txt &" /he32")

# 送信失敗なら自動再送か手動再送か終了(キャンセル)を選択
If( res = 2 )
Choice( "動作選択" , "送信に失敗しました、どうしますか?" , "圏内になったら自動再送する" , "手動で再送する" )

# キャンセルならメール本文をクリップボードに待避して終了
Case( 0 )
SetClipText( txt )
Message( "送信しないで終了します。メール本文はテキストボックスに待避しました。" )
Exit

# 手動で再送する
Case( 2 )
EndChoice
EndIf

EndWhile

# 終了メッセージ
#Message( "送信終了" )

EndSub


Exit
########################







*1: CharAt( data[j] , 1 ) eq "%" ) and ( Length( data[j] ) > 3
*2: CharAt( data[i] , 1 ) eq "%" ) and ( CharAt( data[i+1] , 1 ) eq "%" ) and ( CharAt( data[i+2] , 1 ) eq "%"

ページ移動

  • 前のページ
  • 次のページ
  • ページ
  • 1

ユーティリティ

2012年01月

1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 31 - - - -

検索

エントリー検索フォーム
キーワード

ページ

  • ページが登録されていません。

ユーザー

新着画像

新着エントリー

スパコミ27
2018/03/30 22:19
スマホ版ブログ
2017/11/12 00:05
前のブログから移転
2017/11/05 23:56
スマホで撮った写真の角度
2017/11/05 09:39
大問2017/11/3
2017/11/02 23:25

Feed