Skip to content

Commit

Permalink
#78 - add double-click by @Aussiroth (as part of internship interview)
Browse files Browse the repository at this point in the history
  • Loading branch information
kensoh committed Apr 16, 2018
1 parent bab39e5 commit ab86ffd
Show file tree
Hide file tree
Showing 2 changed files with 24 additions and 1 deletion.
13 changes: 13 additions & 0 deletions src/tagui.sikuli/tagui.py
Original file line number Diff line number Diff line change
Expand Up @@ -25,6 +25,15 @@ def tap_intent ( raw_intent ):
else:
return 0

# function for dtap / dclick step
def dtap_intent ( raw_intent ):
params = (raw_intent + ' ')[1+(raw_intent + ' ').find(' '):].strip()
print '[tagui] ACTION - dclick ' + params
if exists(params):
return doubleClick(params)
else:
return 0

# function for hover / move step
def hover_intent ( raw_intent ):
params = (raw_intent + ' ')[1+(raw_intent + ' ').find(' '):].strip()
Expand Down Expand Up @@ -133,6 +142,8 @@ def vision_intent ( raw_intent ):
def get_intent ( raw_intent ):
if raw_intent[:4].lower() == 'tap ' or raw_intent[:6].lower() == 'click ':
return 'tap'
if raw_intent[:5].lower() == 'dtap ' or raw_intent[:7].lower() == 'dclick ':
return 'dtap'
if raw_intent[:6].lower() == 'hover ' or raw_intent[:5].lower() == 'move ':
return 'hover'
if raw_intent[:5].lower() == 'type ' or raw_intent[:6].lower() == 'enter ':
Expand All @@ -156,6 +167,8 @@ def parse_intent ( script_line ):
intent_type = get_intent(script_line)
if intent_type == 'tap':
return tap_intent(script_line)
elif intent_type == 'dtap':
return dtap_intent(script_line)
elif intent_type == 'hover':
return hover_intent(script_line)
elif intent_type == 'type':
Expand Down
12 changes: 11 additions & 1 deletion src/tagui_parse.php
Original file line number Diff line number Diff line change
Expand Up @@ -205,6 +205,7 @@ function parse_intent($script_line) {$GLOBALS['line_number']++; $GLOBALS['real_l
switch (get_intent($script_line)) {
case "url": return url_intent($script_line); break;
case "tap": return tap_intent($script_line); break;
case "dtap": return dtap_intent($script_line); break;
case "hover": return hover_intent($script_line); break;
case "type": return type_intent($script_line); break;
case "select": return select_intent($script_line); break;
Expand Down Expand Up @@ -246,7 +247,8 @@ function get_intent($raw_intent) {$lc_raw_intent = strtolower($raw_intent);
if ((substr($lc_raw_intent,0,7)=="http://") or (substr($lc_raw_intent,0,8)=="https://") or (substr($lc_raw_intent,0,11)=="about:blank")) return "url"; // recognizing about:blank as valid URL as it is part of HTML5 standard

// first set of conditions check for valid keywords with their parameters
if ((substr($lc_raw_intent,0,4)=="tap ") or (substr($lc_raw_intent,0,6)=="click ")) return "tap";
if ((substr($lc_raw_intent,0,4)=="tap ") or (substr($lc_raw_intent,0,6)=="click ")) return "tap";
if ((substr($lc_raw_intent,0,5)=="dtap ") or (substr($lc_raw_intent,0,7)=="dclick ")) return "dtap";
if ((substr($lc_raw_intent,0,6)=="hover ")or(substr($lc_raw_intent,0,5)=="move ")) return "hover";
if ((substr($lc_raw_intent,0,5)=="type ") or (substr($lc_raw_intent,0,6)=="enter ")) return "type";
if ((substr($lc_raw_intent,0,7)=="select ") or (substr($lc_raw_intent,0,7)=="choose ")) return "select";
Expand Down Expand Up @@ -280,6 +282,7 @@ function get_intent($raw_intent) {$lc_raw_intent = strtolower($raw_intent);

// second set of conditions check for valid keywords with missing parameters
if (($lc_raw_intent=="tap") or ($lc_raw_intent=="click")) return "tap";
if (($lc_raw_intent=="dtap") or ($lc_raw_intent=="dclick")) return "dtap";
if (($lc_raw_intent=="hover") or ($lc_raw_intent=="move")) return "hover";
if (($lc_raw_intent=="type") or ($lc_raw_intent=="enter")) return "type";
if (($lc_raw_intent=="select") or ($lc_raw_intent=="choose")) return "select";
Expand Down Expand Up @@ -436,6 +439,13 @@ function tap_intent($raw_intent) {$twb = $GLOBALS['tagui_web_browser'];
if ($params == "") echo "ERROR - " . current_line() . " target missing for " . $raw_intent . "\n"; else
return "{techo('".$raw_intent."');".beg_tx($params).$twb.".click(tx('" . $params . "'));".end_tx($params);}

function dtap_intent($raw_intent) {$twb = $GLOBALS['tagui_web_browser'];
$params = trim(substr($raw_intent." ",1+strpos($raw_intent." "," ")));
if (is_sikuli($params)) {$abs_params = abs_file($params); $abs_intent = str_replace($params,$abs_params,$raw_intent);
return call_sikuli($abs_intent,$abs_params);} // use sikuli visual automation as needed
if ($params == "") echo "ERROR - " . current_line() . " target missing for " . $raw_intent . "\n"; else
return "{techo('".$raw_intent."');".beg_tx($params).$twb.".mouse.doubleclick(tx('" . $params . "'));".end_tx($params);}

function hover_intent($raw_intent) {$twb = $GLOBALS['tagui_web_browser'];
$params = trim(substr($raw_intent." ",1+strpos($raw_intent." "," ")));
if (is_sikuli($params)) {$abs_params = abs_file($params); $abs_intent = str_replace($params,$abs_params,$raw_intent);
Expand Down

1 comment on commit ab86ffd

@kensoh
Copy link
Member Author

@kensoh kensoh commented on ab86ffd Apr 16, 2018

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

#78 - add double-click by @Aussiroth (live coding as part of AI Singapore' internship interview)

Please sign in to comment.