Data

配列・変数などのデータを取り扱うアクション一覧です。

CreateList

概要

CreateListは、リストを作成するアクションです。

パラメーター

*は、必須パラメーター

名前

概要

items*

配列

作成するリスト

["夏目漱石","太宰治","三島由紀夫","川端康成"]

アウトプット

タイプ

概要

List

配列

作成したリスト

["夏目漱石","太宰治","三島由紀夫","川端康成"]

使用例

+create_list_1:
action>: CreateList
items: ["夏目漱石","太宰治","三島由紀夫","川端康成"]
# => ["夏目漱石","太宰治","三島由紀夫","川端康成"]

CreateObject

概要

CreateObjectは、オブジェクトを作成するアクションです。keysパラメータを設定すると、各キーの型を指定することができます。

パラメーター

*は、必須パラメーター

名前

概要

object*

オブジェクト

作成するオブジェクト

{ id: 123, name: 'taro', mail: 'taro@co.jp' }

keys

配列

各キーの型を指定する場合は、配列で記載

[["id","integer"],["name","string"]]

アウトプット

タイプ

概要

JSON

JSON形式

作成したオブジェクト

{ id: 123, name: 'taro', mail: 'taro@co.jp' }

使用例

+create_object_1:
action>: CreateObject
object:
id: 123
name: taro
mail: 'taro@co.jp'
keys: [["id","integer"],["name","string"]]
# => {
# "id": 123,
# "name": "taro",
# "mail": "taro@co.jp"
#}

GetItemFromList

概要

GetItemFromListは、リストから要素の場所を指定して値を取得するアクションです。

パラメーター

*は、必須パラメーター

名前

概要

list*

配列

対象のリスト

["夏目漱石","太宰治","三島由紀夫","川端康成"]

index*

数値

取り出したい要素のインデックス(0から始まる)

1

アウトプット

タイプ

概要

Anything

返却された値による

取り出した要素

"太宰治"

使用例

+get_item_from_list_1:
action>: GetItemFromList
list: ["夏目漱石","太宰治","三島由紀夫","川端康成"]
index: 1
# => "太宰治"

GetValueWithKey

概要

GetValueWithKeyは、オブジェクトからキーを指定して値を取得するアクションです。

パラメーター

*は、必須パラメーター

名前

概要

object*

配列

対象のオブジェクト

{"author":"夏目漱石","title":"我輩は猫である"}

key*

文字列

キー

author

アウトプット

タイプ

概要

Anything

返却された値による

キーの値

"夏目漱石"

使用例

+get_value_with_key_1:
action>: GetValueWithKey
object:
author: '夏目漱石'
title: '我輩は猫である'
key: author
# => "夏目漱石"

SearchItemFromList

概要

SearchItemFromListは、リスト内を文字列で検索するアクションです。この検索にはワイルドカードが利用できます。

パラメーター

*は、必須パラメーター

名前

概要

list*

配列

対象のリスト

["夏目漱石","太宰治","三島由紀夫","川端康成"]

query*

文字列

検索クエリ

太宰*

アウトプット

タイプ

概要

List

配列

検索にマッチしたもののリスト

["太宰治"]

使用例

+search_item_from_list_1:
action>: SearchItemFromList
list: ["夏目漱石","太宰治","三島由紀夫","川端康成"]
query: '太宰*'
# => ["太宰治"]

StoreValue

概要

StoreValueは、変数に値を保存するアクションです。変数は、 ${...} により呼び出しが可能になります。また、同じ変数名に値を保存することで変数の値を更新することができます。nullの値が定義された場合、空の文字列として登録されます。

パラメーター

*は、必須パラメーター

名前

概要

key*

文字列

変数名

time

value

格納する値による

保存する値

${moment().zone("Asia/Tokyo").format("YYYY年MM月DD日")}

アウトプット

タイプ

概要

Anything

返却された値による

keyとvalueがオブジェクト型で返却される

{"time":"2019年3月12日"}

使用例

ScrapePageアクションで取得した情報をStoreValueアクションで変数に保存する。

+store_value_1:
action>: StoreValue
key: titles
value: +scrape_page_1
# => {
# "titles": [
# "決定版猫と一緒に生き残る防災BOOK",
# "牝の猫と女のネコ",
# "通い猫アルフィーの奇跡",
# "猫をよろこばせる本",
# "猫の困った行動解決ハンドブック"
# ]
#}

StoreValueアクションで保存した変数titlesを他アクションで呼び出す

+text_1:
action>: Text
text: ${titles[0]} # 変数を呼び出す際は、${変数名}の形式で記載
# => "決定版猫と一緒に生き残る防災BOOK"

GetState

概要

GetState は、ロボットの動作中の状態を取得することができるアクションです。 取得できる状態の種類は、限られています。また、取得されるのは、直前のステートです。

取得できる状態

名前

概要

downloads_count

整数値

ブラウザアクションのクリックでダウンロードされたファイルの総数

redirect_paths

オブジェクト

クリックやGoToで画面遷移した際に、リダイレクトされたり、途中に表示されたりしたURLの情報

パラメーター

*は、必須パラメーター

名前

概要

key*

文字列

キー

redirect_paths

アウトプット

タイプ

概要

Anything

返却された値による

オブジェクト型で返却される

[{"status": 200, "url":"https://example.com"}]

使用例

例えば、ページ遷移時に、通常の遷移(クリックやJavaScriptでの遷移)の場合は、200ステータス、サーバー側でリダイレクトされた時は、302など、次のように返却されます。

+get_state_1:
action>: GetState
key: redirect_paths
# これは例えばこのように表示されます
# [
# {
# "status": 200, # ページ自体の遷移
# "url": "https://javascript.redirect.path.example.com/1"
# },
# {
# "status": 302, # サーバー側でリダイレクトされた時
# "url": "https://redirected.path.example.com/1"
# },
# {
# "status": 200,
# "url": "https://javascript.redirect.path.example.com/2"
# }
# ]

RunScript

概要

アクション内で、JavaScript実行することができます。StoreValueで保存された変数は、同名の変数名でコード内で使用できます。コードはSandbox環境で実行され、利用できるコードは、JavaScriptのにBuilt-inされたオブジェクトのみが利用できます。30秒後にTimeoutします。

パラメーター

*は、必須パラメーター

名前

概要

code*

文字列

実行したいJavaScriptのコード

※code例参照

code例

ScrapePageアクションで情報を取得し、StoreValueアクションで変数booksに格納した後、RunScriptアクションでbooksの値を整える。

var element = ${books};
var newBook = [];
for ( let book of element ) {
 newBook.push(book.split("\n"));
}
return newBook;

アウトプット

タイプ

概要

Anything

返却された値による

RunScriptの結果

※使用例のアウトプット参照

使用例

+run_script_1:
action>: RunScript
code: 'var element = ${books}; var newBook = []; for ( let book of element ) { newBook.push(book.split("\n")); } return newBook;'
# => [
# [
# "決定版猫と一緒に生き残る防災BOOK",
# "猫びより編集部",
# "http://books.google.co.jp/books?id=a5JSvwEACAAJ&dq=%E7%8C%AB&hl=&source=gbs_api",
# ""
# ],
# [
# "牝の猫と女のネコ",
# "岩井志麻子",
# "https://play.google.com/store/books/details?id=VFgVDgAAQBAJ&source=gbs_api",
v ""
# ],
# [
# "通い猫アルフィーの奇跡",
# "レイチェル・ウェルズ 中西和美",
# "https://play.google.com/store/books/details?id=WhkVDQAAQBAJ&source=gbs_api",
# ""
# ],
# [
# "猫をよろこばせる本",
# "沼田朗",
# "https://play.google.com/store/books/details?id=kcgMBvj8pzgC&source=gbs_api",
# ""
# ],
# [
# "猫の困った行動解決ハンドブック",
# "高崎一哉",
# "http://books.google.co.jp/books?id=Szcc61SiSHYC&dq=%E7%8C%AB&hl=&source=gbs_api",
# ""
# ]
#]