watobo 0.9.21 → 0.9.23
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +7 -0
- data/CHANGELOG.md +46 -1
- data/bin/nfq_server.rb +0 -9
- data/bin/watobo_gui.rb +3 -13
- data/custom-views/prettify-json.rb +9 -18
- data/icons/watobo.ico +0 -0
- data/icons/watobo.ico.old +0 -0
- data/lib/watobo.rb +10 -19
- data/lib/watobo/adapters.rb +5 -14
- data/lib/watobo/adapters/data_store.rb +50 -59
- data/lib/watobo/adapters/file/file_store.rb +287 -296
- data/lib/watobo/adapters/file/marshal_store.rb +293 -296
- data/lib/watobo/adapters/session_store.rb +5 -14
- data/lib/watobo/ca.rb +1 -10
- data/lib/watobo/config.rb +197 -206
- data/lib/watobo/constants.rb +0 -9
- data/lib/watobo/core.rb +3 -12
- data/lib/watobo/core/active_check.rb +72 -135
- data/lib/watobo/core/active_checks.rb +49 -58
- data/lib/watobo/core/ca.rb +369 -389
- data/lib/watobo/core/cert_store.rb +34 -43
- data/lib/watobo/core/chat.rb +92 -101
- data/lib/watobo/core/chats.rb +271 -280
- data/lib/watobo/core/client_cert_store.rb +106 -35
- data/lib/watobo/core/conversation.rb +48 -57
- data/lib/watobo/core/cookie.rb +23 -32
- data/lib/watobo/core/egress_handlers.rb +98 -0
- data/lib/watobo/core/finding.rb +66 -75
- data/lib/watobo/core/findings.rb +107 -114
- data/lib/watobo/core/forwarding_proxy.rb +13 -22
- data/lib/watobo/core/fuzz_gen.rb +0 -9
- data/lib/watobo/core/intercept_carver.rb +166 -177
- data/lib/watobo/core/intercept_filter.rb +235 -244
- data/lib/watobo/core/interceptor.rb +98 -107
- data/lib/watobo/core/min_class.rb +4 -13
- data/lib/watobo/core/netfilter_queue.rb +170 -179
- data/lib/watobo/core/ott_cache.rb +132 -141
- data/lib/watobo/core/parameter.rb +43 -52
- data/lib/watobo/core/passive_check.rb +103 -102
- data/lib/watobo/core/passive_checks.rb +48 -57
- data/lib/watobo/core/passive_scanner.rb +54 -55
- data/lib/watobo/core/plugin.rb +11 -20
- data/lib/watobo/core/project.rb +3 -9
- data/lib/watobo/core/proxy.rb +43 -52
- data/lib/watobo/core/request.rb +125 -123
- data/lib/watobo/core/response.rb +44 -53
- data/lib/watobo/core/scanner.rb +0 -9
- data/lib/watobo/core/scanner3.rb +405 -414
- data/lib/watobo/core/scope.rb +83 -92
- data/lib/watobo/core/session.rb +1043 -1026
- data/lib/watobo/core/sid_cache.rb +98 -107
- data/lib/watobo/core/subscriber.rb +25 -34
- data/lib/watobo/defaults.rb +21 -30
- data/lib/watobo/external/diff/lcs.rb +0 -9
- data/lib/watobo/external/diff/lcs/array.rb +0 -9
- data/lib/watobo/external/diff/lcs/block.rb +0 -9
- data/lib/watobo/external/diff/lcs/callbacks.rb +0 -9
- data/lib/watobo/external/diff/lcs/change.rb +0 -9
- data/lib/watobo/external/diff/lcs/hunk.rb +0 -9
- data/lib/watobo/external/diff/lcs/ldiff.rb +0 -9
- data/lib/watobo/external/diff/lcs/string.rb +0 -9
- data/lib/watobo/externals.rb +6 -15
- data/lib/watobo/framework.rb +4 -13
- data/lib/watobo/framework/create_project.rb +60 -69
- data/lib/watobo/framework/init.rb +0 -9
- data/lib/watobo/framework/init_modules.rb +0 -9
- data/lib/watobo/framework/license_text.rb +28 -37
- data/lib/watobo/framework/load_chat.rb +13 -22
- data/lib/watobo/gui.rb +132 -123
- data/lib/watobo/gui/about_watobo.rb +0 -9
- data/lib/watobo/gui/browser_preview.rb +0 -9
- data/lib/watobo/gui/certificate_dialog.rb +0 -9
- data/lib/watobo/gui/chat_diff.rb +0 -9
- data/lib/watobo/gui/chatviewer_frame.rb +73 -72
- data/lib/watobo/gui/checkboxtree.rb +0 -9
- data/lib/watobo/gui/checks_policy_frame.rb +0 -9
- data/lib/watobo/gui/client_cert_dialog.rb +96 -87
- data/lib/watobo/gui/confirm_scan_dialog.rb +0 -9
- data/lib/watobo/gui/conversation_table.rb +158 -164
- data/lib/watobo/gui/conversation_table_ctrl.rb +207 -216
- data/lib/watobo/gui/conversation_table_ctrl2.rb +373 -382
- data/lib/watobo/gui/csrf_token_dialog.rb +0 -9
- data/lib/watobo/gui/custom_viewer.rb +374 -383
- data/lib/watobo/gui/dashboard.rb +296 -303
- data/lib/watobo/gui/define_scope_frame.rb +0 -9
- data/lib/watobo/gui/differ_frame.rb +215 -224
- data/lib/watobo/gui/edit_comment.rb +0 -9
- data/lib/watobo/gui/edit_scope_dialog.rb +0 -9
- data/lib/watobo/gui/export_dialog.rb +104 -113
- data/lib/watobo/gui/finding_info.rb +0 -9
- data/lib/watobo/gui/findings_tree.rb +210 -217
- data/lib/watobo/gui/full_scan_dialog.rb +0 -9
- data/lib/watobo/gui/fuzzer_gui.rb +1295 -1313
- data/lib/watobo/gui/fxsave_thread.rb +14 -0
- data/lib/watobo/gui/goto_url_dialog.rb +70 -79
- data/lib/watobo/gui/hex_viewer.rb +0 -9
- data/lib/watobo/gui/html_viewer.rb +287 -296
- data/lib/watobo/gui/intercept_filter_dialog.rb +188 -197
- data/lib/watobo/gui/interceptor_gui.rb +1041 -1051
- data/lib/watobo/gui/interceptor_settings_dialog.rb +0 -9
- data/lib/watobo/gui/json_viewer.rb +287 -0
- data/lib/watobo/gui/list_box.rb +101 -110
- data/lib/watobo/gui/log_file_viewer.rb +32 -41
- data/lib/watobo/gui/log_viewer.rb +83 -88
- data/lib/watobo/gui/login_wizzard.rb +0 -9
- data/lib/watobo/gui/main_window.rb +587 -618
- data/lib/watobo/gui/manual_request_editor.rb +620 -565
- data/lib/watobo/gui/master_pw_dialog.rb +0 -9
- data/lib/watobo/gui/mixins/gui_settings.rb +29 -38
- data/lib/watobo/gui/page_tree.rb +217 -226
- data/lib/watobo/gui/password_policy_dialog.rb +0 -9
- data/lib/watobo/gui/plugin_board.rb +0 -9
- data/lib/watobo/gui/preferences_dialog.rb +0 -9
- data/lib/watobo/gui/progress_window.rb +17 -27
- data/lib/watobo/gui/project_wizzard.rb +0 -9
- data/lib/watobo/gui/proxy_dialog.rb +1 -10
- data/lib/watobo/gui/quick_scan_dialog.rb +0 -9
- data/lib/watobo/gui/request_builder_frame.rb +102 -111
- data/lib/watobo/gui/request_editor.rb +181 -137
- data/lib/watobo/gui/rewrite_filters_dialog.rb +394 -403
- data/lib/watobo/gui/rewrite_rules_dialog.rb +372 -381
- data/lib/watobo/gui/save_chat_dialog.rb +140 -149
- data/lib/watobo/gui/scanner_settings_dialog.rb +0 -9
- data/lib/watobo/gui/select_chat_dialog.rb +0 -9
- data/lib/watobo/gui/session_management_dialog.rb +0 -9
- data/lib/watobo/gui/sites_tree.rb +0 -9
- data/lib/watobo/gui/status_bar.rb +0 -9
- data/lib/watobo/gui/table_editor.rb +0 -9
- data/lib/watobo/gui/tagless_viewer.rb +0 -9
- data/lib/watobo/gui/templates/plugin.rb +0 -9
- data/lib/watobo/gui/templates/plugin2.rb +92 -100
- data/lib/watobo/gui/templates/plugin_base.rb +144 -153
- data/lib/watobo/gui/text_viewer.rb +0 -9
- data/lib/watobo/gui/transcoder_window.rb +0 -9
- data/lib/watobo/gui/utils/gui_utils.rb +0 -9
- data/lib/watobo/gui/utils/init_icons.rb +86 -95
- data/lib/watobo/gui/utils/load_icons.rb +33 -42
- data/lib/watobo/gui/utils/load_plugins.rb +116 -119
- data/lib/watobo/gui/utils/master_password.rb +68 -77
- data/lib/watobo/gui/utils/save_default_settings.rb +113 -122
- data/lib/watobo/gui/utils/save_project_settings.rb +0 -9
- data/lib/watobo/gui/utils/save_proxy_settings.rb +41 -50
- data/lib/watobo/gui/utils/save_scanner_settings.rb +18 -27
- data/lib/watobo/gui/utils/session_history.rb +112 -121
- data/lib/watobo/gui/workspace_dialog.rb +0 -9
- data/lib/watobo/gui/www_auth_dialog.rb +0 -9
- data/lib/watobo/gui/xml_viewer_frame.rb +0 -9
- data/lib/watobo/http.rb +4 -13
- data/lib/watobo/http/cookies/cookies.rb +26 -35
- data/lib/watobo/http/data/data.rb +45 -54
- data/lib/watobo/http/data/json.rb +47 -55
- data/lib/watobo/http/url/url.rb +38 -47
- data/lib/watobo/http/xml/xml.rb +124 -130
- data/lib/watobo/interceptor.rb +3 -12
- data/lib/watobo/interceptor/proxy.rb +742 -739
- data/lib/watobo/interceptor/transparent.rb +22 -24
- data/lib/watobo/mixins.rb +10 -19
- data/lib/watobo/mixins/check_info.rb +27 -36
- data/lib/watobo/mixins/httpparser.rb +613 -637
- data/lib/watobo/mixins/request_parser.rb +88 -97
- data/lib/watobo/mixins/shapers.rb +515 -529
- data/lib/watobo/mixins/transcoders.rb +3 -11
- data/lib/watobo/parser.rb +1 -10
- data/lib/watobo/parser/html.rb +83 -92
- data/lib/watobo/patch_fxruby_setfocus.rb +26 -0
- data/lib/watobo/sockets.rb +3 -12
- data/lib/watobo/sockets/agent.rb +828 -837
- data/lib/watobo/sockets/client_socket.rb +308 -312
- data/lib/watobo/sockets/connection.rb +401 -410
- data/lib/watobo/sockets/http_socket.rb +11 -13
- data/lib/watobo/sockets/ntlm_auth.rb +129 -138
- data/lib/watobo/utils.rb +10 -19
- data/lib/watobo/utils/check_regex.rb +0 -9
- data/lib/watobo/utils/copy_object.rb +0 -9
- data/lib/watobo/utils/crypto.rb +0 -9
- data/lib/watobo/utils/expand_range.rb +23 -32
- data/lib/watobo/utils/export_xml.rb +97 -106
- data/lib/watobo/utils/file_management.rb +9 -11
- data/lib/watobo/utils/hexprint.rb +9 -18
- data/lib/watobo/utils/load_chat.rb +0 -9
- data/lib/watobo/utils/load_icon.rb +0 -9
- data/lib/watobo/utils/ntlm.rb +866 -875
- data/lib/watobo/utils/print_debug.rb +12 -21
- data/lib/watobo/utils/response_builder.rb +90 -99
- data/lib/watobo/utils/response_hash.rb +0 -9
- data/lib/watobo/utils/secure_eval.rb +0 -9
- data/lib/watobo/utils/strings.rb +10 -19
- data/lib/watobo/utils/text2request.rb +0 -9
- data/lib/watobo/utils/url.rb +23 -32
- data/lib/watobo/utils/utf16.rb +11 -20
- data/modules/active/Apache/mod_status.rb +0 -9
- data/modules/active/Apache/multiview.rb +151 -160
- data/modules/active/Flash/crossdomain.rb +0 -9
- data/modules/active/JWT/jwt_oauth2_none.rb +111 -0
- data/modules/active/cq5/cq5_default_selectors.rb +106 -115
- data/modules/active/cq5/cqp_user_enumeration.rb +125 -134
- data/modules/active/directories/dirwalker.rb +0 -9
- data/modules/active/discovery/fileextensions.rb +0 -9
- data/modules/active/discovery/http_methods.rb +0 -9
- data/modules/active/discovery/jsmapfiles.rb +79 -0
- data/modules/active/domino/domino_db.rb +68 -76
- data/modules/active/dotNET/custom_errors.rb +102 -111
- data/modules/active/dotNET/dotnet_files.rb +90 -99
- data/modules/active/fileinclusion/lfi_simple.rb +0 -9
- data/modules/active/jboss/jboss_basic.rb +0 -9
- data/modules/active/sap/business_objects.rb +51 -60
- data/modules/active/sap/its_commands.rb +0 -9
- data/modules/active/sap/its_service_parameter.rb +0 -9
- data/modules/active/sap/its_services.rb +0 -9
- data/modules/active/sap/its_xss.rb +0 -9
- data/modules/active/shell_shock/shell_shock.rb +139 -148
- data/modules/active/siebel/siebel_apps.rb +160 -169
- data/modules/active/sqlinjection/sql_boolean.rb +0 -9
- data/modules/active/sqlinjection/sql_numerical.rb +198 -0
- data/modules/active/sqlinjection/sqli_error.rb +0 -9
- data/modules/active/sqlinjection/sqli_timing.rb +220 -229
- data/modules/active/struts2/default_handler_ognl.rb +106 -115
- data/modules/active/struts2/include_params_ognl.rb +105 -114
- data/modules/active/xml/xml_xxe.rb +112 -123
- data/modules/active/xss/xss_ng.rb +214 -223
- data/modules/active/xss/xss_simple.rb +0 -9
- data/modules/passive/ajax.rb +68 -77
- data/modules/passive/autocomplete.rb +56 -65
- data/modules/passive/cookie_options.rb +0 -9
- data/modules/passive/cookie_xss.rb +0 -9
- data/modules/passive/detect_code.rb +0 -9
- data/modules/passive/detect_fileupload.rb +0 -9
- data/modules/passive/detect_infrastructure.rb +0 -9
- data/modules/passive/detect_one_time_tokens.rb +0 -9
- data/modules/passive/dirindexing.rb +0 -9
- data/modules/passive/disclosure_domino.rb +55 -64
- data/modules/passive/disclosure_emails.rb +0 -9
- data/modules/passive/disclosure_ipaddr.rb +55 -53
- data/modules/passive/filename_as_parameter.rb +0 -9
- data/modules/passive/form_spotter.rb +0 -9
- data/modules/passive/hidden_fields.rb +50 -59
- data/modules/passive/hotspots.rb +0 -9
- data/modules/passive/in_script_parameter.rb +0 -9
- data/modules/passive/json_web_token.rb +93 -0
- data/modules/passive/multiple_server_headers.rb +0 -9
- data/modules/passive/possible_login.rb +0 -9
- data/modules/passive/redirect_url.rb +0 -9
- data/modules/passive/redirectionz.rb +0 -9
- data/modules/passive/sap-headers.rb +56 -65
- data/modules/passive/xss_dom.rb +0 -9
- data/plugins/aem/aem.rb +11 -20
- data/plugins/aem/gui/main.rb +118 -127
- data/plugins/aem/gui/tree_view.rb +171 -180
- data/plugins/aem/lib/agent.rb +130 -138
- data/plugins/aem/lib/dispatcher.rb +45 -51
- data/plugins/aem/lib/engine.rb +177 -186
- data/plugins/catalog/catalog.rb +345 -355
- data/plugins/crawler/crawler.rb +4 -13
- data/plugins/crawler/gui.rb +5 -14
- data/plugins/crawler/gui/auth_frame.rb +270 -279
- data/plugins/crawler/gui/crawler_gui.rb +271 -276
- data/plugins/crawler/gui/general_settings_frame.rb +96 -105
- data/plugins/crawler/gui/hooks_frame.rb +80 -89
- data/plugins/crawler/gui/scope_frame.rb +50 -59
- data/plugins/crawler/gui/settings_tabbook.rb +38 -47
- data/plugins/crawler/gui/status_frame.rb +59 -68
- data/plugins/crawler/lib/bags.rb +18 -27
- data/plugins/crawler/lib/constants.rb +11 -20
- data/plugins/crawler/lib/engine.rb +488 -497
- data/plugins/crawler/lib/grabber.rb +68 -77
- data/plugins/crawler/lib/status.rb +71 -80
- data/plugins/crawler/lib/uri_mp.rb +12 -21
- data/plugins/filefinder/filefinder.rb +326 -333
- data/plugins/sqlmap/bin/test.rb +78 -87
- data/plugins/sqlmap/gui.rb +4 -13
- data/plugins/sqlmap/gui/main.rb +218 -227
- data/plugins/sqlmap/gui/options_frame.rb +97 -106
- data/plugins/sqlmap/lib/sqlmap_ctrl.rb +90 -100
- data/plugins/sqlmap/sqlmap.rb +2 -11
- data/plugins/sslchecker/cli/sslchecker_cli.rb +0 -9
- data/plugins/sslchecker/gui/cipher_table.rb +246 -254
- data/plugins/sslchecker/gui/gui.rb +258 -264
- data/plugins/sslchecker/gui/sslchecker.rb +4 -13
- data/plugins/sslchecker/lib/check.rb +127 -133
- data/plugins/wshell/gui/main.rb +119 -117
- data/plugins/wshell/lib/core.rb +38 -88
- data/plugins/wshell/wshell.rb +11 -20
- metadata +170 -164
|
@@ -1,150 +1,141 @@
|
|
|
1
|
-
#.
|
|
2
|
-
# save_chat_dialog.rb
|
|
3
|
-
#.
|
|
4
|
-
# Copyright 2014 by siberas, http://www.siberas.de
|
|
5
|
-
# This file is part of WATOBO (Web Application Tool Box) http://watobo.sourceforge.com
|
|
6
|
-
# WATOBO is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation version 2 of the License.
|
|
7
|
-
# WATOBO is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
|
|
8
|
-
# You should have received a copy of the GNU General Public License along with WATOBO; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
|
|
9
|
-
|
|
10
1
|
# @private
|
|
11
|
-
module Watobo#:nodoc: all
|
|
12
|
-
module Gui
|
|
13
|
-
class SaveChatDialog < FXDialogBox
|
|
14
|
-
class Sender < Watobo::Session
|
|
15
|
-
def initialize()
|
|
16
|
-
@project = Watobo::Gui.project
|
|
17
|
-
super(@project.object_id, @project.getScanPreferences())
|
|
18
|
-
|
|
19
|
-
end
|
|
20
|
-
|
|
21
|
-
def send_request(new_request, opts = {} )
|
|
22
|
-
prefs = {
|
|
23
|
-
:run_login => false,
|
|
24
|
-
:update_csrf_tokens => false
|
|
25
|
-
}
|
|
26
|
-
prefs.update opts
|
|
27
|
-
|
|
28
|
-
id = 0
|
|
29
|
-
if prefs[:run_login ] == true
|
|
30
|
-
puts prefs.to_yaml
|
|
31
|
-
puts "Scanner Settings:"
|
|
32
|
-
puts Watobo::Conf::Scanner.to_h.to_yaml
|
|
33
|
-
runLogin( prefs[:login_chats], prefs)
|
|
34
|
-
end
|
|
35
|
-
#if prefs[:update_session ] == true and
|
|
36
|
-
unless prefs[:update_csrf_tokens] == true
|
|
37
|
-
prefs[:csrf_requests] = []
|
|
38
|
-
prefs[:csrf_patterns] = []
|
|
39
|
-
end
|
|
40
|
-
|
|
41
|
-
new_request.extend Watobo::Mixin::Parser::Web10
|
|
42
|
-
new_request.extend Watobo::Mixin::Shaper::Web10
|
|
43
|
-
begin
|
|
44
|
-
test_req, test_resp = self.doRequest(new_request, prefs)
|
|
45
|
-
rescue => bang
|
|
46
|
-
puts bang
|
|
47
|
-
end
|
|
48
|
-
return test_req,test_resp
|
|
49
|
-
end
|
|
50
|
-
|
|
51
|
-
end
|
|
52
|
-
include Responder
|
|
53
|
-
|
|
54
|
-
def filename
|
|
55
|
-
@filename_txt.text
|
|
56
|
-
end
|
|
57
|
-
|
|
58
|
-
def initialize(owner, chat, prefs={})
|
|
59
|
-
raise ArgumentError, "Need Chat Object" unless chat.respond_to? :request
|
|
60
|
-
super(owner, "Save Response", :opts => DECOR_ALL)
|
|
61
|
-
@chat = chat
|
|
62
|
-
@sender = Sender.new
|
|
63
|
-
@response = chat.response
|
|
64
|
-
|
|
65
|
-
FXMAPFUNC(SEL_COMMAND, ID_ACCEPT, :onAccept)
|
|
66
|
-
|
|
67
|
-
@path = Watobo.workspace_path
|
|
68
|
-
|
|
69
|
-
main_frame = FXVerticalFrame.new(self, :opts => LAYOUT_FILL_X|LAYOUT_FILL_Y|FRAME_GROOVE)
|
|
70
|
-
|
|
71
|
-
frame = FXHorizontalFrame.new(main_frame, :opts => LAYOUT_FILL_X)
|
|
72
|
-
FXLabel.new(frame,"Response:")
|
|
73
|
-
@reload_btn = FXButton.new(frame, "Reload", nil, self, 0, FRAME_RAISED|FRAME_THICK|LAYOUT_CENTER_Y|LAYOUT_SIDE_RIGHT)
|
|
74
|
-
|
|
75
|
-
@response_viewer = Watobo::Gui::ResponseViewer.new(main_frame, LAYOUT_FILL_X|LAYOUT_FILL_Y)
|
|
76
|
-
@response_viewer.setText(@response)
|
|
77
|
-
@reload_btn.connect(SEL_COMMAND){
|
|
78
|
-
s,a = @sender.send_request(@chat.request)
|
|
79
|
-
@response = a
|
|
80
|
-
@response.extend Watobo::Mixin::Parser::Web10
|
|
81
|
-
@response.extend Watobo::Mixin::Shaper::Web10
|
|
82
|
-
@response_viewer.setText(@response)
|
|
83
|
-
}
|
|
84
|
-
|
|
85
|
-
frame = FXHorizontalFrame.new(main_frame, :opts => LAYOUT_FILL_X)
|
|
86
|
-
FXLabel.new(frame, "Save To:", nil, LAYOUT_TOP|JUSTIFY_RIGHT)
|
|
87
|
-
@filename_txt = FXTextField.new(frame, 25, :opts => TEXTFIELD_NORMAL|LAYOUT_SIDE_RIGHT)
|
|
88
|
-
@select_btn = FXButton.new(frame, "Select")
|
|
89
|
-
@select_btn.connect(SEL_COMMAND){ select_target_file }
|
|
90
|
-
if @chat.respond_to? :response
|
|
91
|
-
@select_btn.enable
|
|
92
|
-
@filename_txt.enable
|
|
93
|
-
else
|
|
94
|
-
@select_btn.disable
|
|
95
|
-
@filename_txt.disable
|
|
96
|
-
end
|
|
97
|
-
|
|
98
|
-
buttons = FXHorizontalFrame.new(main_frame, :opts => LAYOUT_SIDE_BOTTOM|LAYOUT_FILL_X|PACK_UNIFORM_WIDTH,
|
|
99
|
-
:padLeft => 40, :padRight => 40, :padTop => 20, :padBottom => 20)
|
|
100
|
-
|
|
101
|
-
accept = FXButton.new(buttons, "&Save", nil, self, ID_ACCEPT,
|
|
102
|
-
FRAME_RAISED|FRAME_THICK|LAYOUT_RIGHT|LAYOUT_CENTER_Y)
|
|
103
|
-
accept.enable
|
|
104
|
-
# Cancel
|
|
105
|
-
FXButton.new(buttons, "&Cancel", nil, self, ID_CANCEL,
|
|
106
|
-
FRAME_RAISED|FRAME_THICK|LAYOUT_RIGHT|LAYOUT_CENTER_Y)
|
|
107
|
-
end
|
|
108
|
-
|
|
109
|
-
private
|
|
110
|
-
|
|
111
|
-
def select_target_file()
|
|
112
|
-
file = @chat.request.file
|
|
113
|
-
file = "chat.txt" if file.strip.empty?
|
|
114
|
-
dst_file = File.join(@path, file)
|
|
115
|
-
filename = FXFileDialog.getSaveFilename(self, "Select Destination File", dst_file)
|
|
116
|
-
if filename != "" then
|
|
117
|
-
@filename_txt.text = filename
|
|
118
|
-
end
|
|
119
|
-
end
|
|
120
|
-
|
|
121
|
-
def updateFields()
|
|
122
|
-
# @sites_combo.handle(self, FXSEL(SEL_UPDATE, 1), nil)
|
|
123
|
-
|
|
124
|
-
end
|
|
125
|
-
|
|
126
|
-
def onAccept(sender, sel, event)
|
|
127
|
-
begin
|
|
128
|
-
f = @filename_txt.text
|
|
129
|
-
if f != ''
|
|
130
|
-
@path = File.dirname(f)
|
|
131
|
-
|
|
132
|
-
if @response.has_body?
|
|
133
|
-
File.open(f,"wb"){ |fh| fh.print @response.body }
|
|
134
|
-
end
|
|
135
|
-
end
|
|
136
|
-
status = 1
|
|
137
|
-
rescue => bang
|
|
138
|
-
puts bang
|
|
139
|
-
status = 0
|
|
140
|
-
ensure
|
|
141
|
-
getApp().stopModal(self, 1)
|
|
142
|
-
self.hide()
|
|
143
|
-
return status
|
|
144
|
-
end
|
|
145
|
-
|
|
146
|
-
end
|
|
147
|
-
end
|
|
148
|
-
|
|
149
|
-
end
|
|
150
|
-
end
|
|
2
|
+
module Watobo#:nodoc: all
|
|
3
|
+
module Gui
|
|
4
|
+
class SaveChatDialog < FXDialogBox
|
|
5
|
+
class Sender < Watobo::Session
|
|
6
|
+
def initialize()
|
|
7
|
+
@project = Watobo::Gui.project
|
|
8
|
+
super(@project.object_id, @project.getScanPreferences())
|
|
9
|
+
|
|
10
|
+
end
|
|
11
|
+
|
|
12
|
+
def send_request(new_request, opts = {} )
|
|
13
|
+
prefs = {
|
|
14
|
+
:run_login => false,
|
|
15
|
+
:update_csrf_tokens => false
|
|
16
|
+
}
|
|
17
|
+
prefs.update opts
|
|
18
|
+
|
|
19
|
+
id = 0
|
|
20
|
+
if prefs[:run_login ] == true
|
|
21
|
+
puts prefs.to_yaml
|
|
22
|
+
puts "Scanner Settings:"
|
|
23
|
+
puts Watobo::Conf::Scanner.to_h.to_yaml
|
|
24
|
+
runLogin( prefs[:login_chats], prefs)
|
|
25
|
+
end
|
|
26
|
+
#if prefs[:update_session ] == true and
|
|
27
|
+
unless prefs[:update_csrf_tokens] == true
|
|
28
|
+
prefs[:csrf_requests] = []
|
|
29
|
+
prefs[:csrf_patterns] = []
|
|
30
|
+
end
|
|
31
|
+
|
|
32
|
+
new_request.extend Watobo::Mixin::Parser::Web10
|
|
33
|
+
new_request.extend Watobo::Mixin::Shaper::Web10
|
|
34
|
+
begin
|
|
35
|
+
test_req, test_resp = self.doRequest(new_request, prefs)
|
|
36
|
+
rescue => bang
|
|
37
|
+
puts bang
|
|
38
|
+
end
|
|
39
|
+
return test_req,test_resp
|
|
40
|
+
end
|
|
41
|
+
|
|
42
|
+
end
|
|
43
|
+
include Responder
|
|
44
|
+
|
|
45
|
+
def filename
|
|
46
|
+
@filename_txt.text
|
|
47
|
+
end
|
|
48
|
+
|
|
49
|
+
def initialize(owner, chat, prefs={})
|
|
50
|
+
raise ArgumentError, "Need Chat Object" unless chat.respond_to? :request
|
|
51
|
+
super(owner, "Save Response", :opts => DECOR_ALL)
|
|
52
|
+
@chat = chat
|
|
53
|
+
@sender = Sender.new
|
|
54
|
+
@response = chat.response
|
|
55
|
+
|
|
56
|
+
FXMAPFUNC(SEL_COMMAND, ID_ACCEPT, :onAccept)
|
|
57
|
+
|
|
58
|
+
@path = Watobo.workspace_path
|
|
59
|
+
|
|
60
|
+
main_frame = FXVerticalFrame.new(self, :opts => LAYOUT_FILL_X|LAYOUT_FILL_Y|FRAME_GROOVE)
|
|
61
|
+
|
|
62
|
+
frame = FXHorizontalFrame.new(main_frame, :opts => LAYOUT_FILL_X)
|
|
63
|
+
FXLabel.new(frame,"Response:")
|
|
64
|
+
@reload_btn = FXButton.new(frame, "Reload", nil, self, 0, FRAME_RAISED|FRAME_THICK|LAYOUT_CENTER_Y|LAYOUT_SIDE_RIGHT)
|
|
65
|
+
|
|
66
|
+
@response_viewer = Watobo::Gui::ResponseViewer.new(main_frame, LAYOUT_FILL_X|LAYOUT_FILL_Y)
|
|
67
|
+
@response_viewer.setText(@response)
|
|
68
|
+
@reload_btn.connect(SEL_COMMAND){
|
|
69
|
+
s,a = @sender.send_request(@chat.request)
|
|
70
|
+
@response = a
|
|
71
|
+
@response.extend Watobo::Mixin::Parser::Web10
|
|
72
|
+
@response.extend Watobo::Mixin::Shaper::Web10
|
|
73
|
+
@response_viewer.setText(@response)
|
|
74
|
+
}
|
|
75
|
+
|
|
76
|
+
frame = FXHorizontalFrame.new(main_frame, :opts => LAYOUT_FILL_X)
|
|
77
|
+
FXLabel.new(frame, "Save To:", nil, LAYOUT_TOP|JUSTIFY_RIGHT)
|
|
78
|
+
@filename_txt = FXTextField.new(frame, 25, :opts => TEXTFIELD_NORMAL|LAYOUT_SIDE_RIGHT)
|
|
79
|
+
@select_btn = FXButton.new(frame, "Select")
|
|
80
|
+
@select_btn.connect(SEL_COMMAND){ select_target_file }
|
|
81
|
+
if @chat.respond_to? :response
|
|
82
|
+
@select_btn.enable
|
|
83
|
+
@filename_txt.enable
|
|
84
|
+
else
|
|
85
|
+
@select_btn.disable
|
|
86
|
+
@filename_txt.disable
|
|
87
|
+
end
|
|
88
|
+
|
|
89
|
+
buttons = FXHorizontalFrame.new(main_frame, :opts => LAYOUT_SIDE_BOTTOM|LAYOUT_FILL_X|PACK_UNIFORM_WIDTH,
|
|
90
|
+
:padLeft => 40, :padRight => 40, :padTop => 20, :padBottom => 20)
|
|
91
|
+
|
|
92
|
+
accept = FXButton.new(buttons, "&Save", nil, self, ID_ACCEPT,
|
|
93
|
+
FRAME_RAISED|FRAME_THICK|LAYOUT_RIGHT|LAYOUT_CENTER_Y)
|
|
94
|
+
accept.enable
|
|
95
|
+
# Cancel
|
|
96
|
+
FXButton.new(buttons, "&Cancel", nil, self, ID_CANCEL,
|
|
97
|
+
FRAME_RAISED|FRAME_THICK|LAYOUT_RIGHT|LAYOUT_CENTER_Y)
|
|
98
|
+
end
|
|
99
|
+
|
|
100
|
+
private
|
|
101
|
+
|
|
102
|
+
def select_target_file()
|
|
103
|
+
file = @chat.request.file
|
|
104
|
+
file = "chat.txt" if file.strip.empty?
|
|
105
|
+
dst_file = File.join(@path, file)
|
|
106
|
+
filename = FXFileDialog.getSaveFilename(self, "Select Destination File", dst_file)
|
|
107
|
+
if filename != "" then
|
|
108
|
+
@filename_txt.text = filename
|
|
109
|
+
end
|
|
110
|
+
end
|
|
111
|
+
|
|
112
|
+
def updateFields()
|
|
113
|
+
# @sites_combo.handle(self, FXSEL(SEL_UPDATE, 1), nil)
|
|
114
|
+
|
|
115
|
+
end
|
|
116
|
+
|
|
117
|
+
def onAccept(sender, sel, event)
|
|
118
|
+
begin
|
|
119
|
+
f = @filename_txt.text
|
|
120
|
+
if f != ''
|
|
121
|
+
@path = File.dirname(f)
|
|
122
|
+
|
|
123
|
+
if @response.has_body?
|
|
124
|
+
File.open(f,"wb"){ |fh| fh.print @response.body }
|
|
125
|
+
end
|
|
126
|
+
end
|
|
127
|
+
status = 1
|
|
128
|
+
rescue => bang
|
|
129
|
+
puts bang
|
|
130
|
+
status = 0
|
|
131
|
+
ensure
|
|
132
|
+
getApp().stopModal(self, 1)
|
|
133
|
+
self.hide()
|
|
134
|
+
return status
|
|
135
|
+
end
|
|
136
|
+
|
|
137
|
+
end
|
|
138
|
+
end
|
|
139
|
+
|
|
140
|
+
end
|
|
141
|
+
end
|
|
@@ -1,12 +1,3 @@
|
|
|
1
|
-
#.
|
|
2
|
-
# scanner_settings_dialog.rb
|
|
3
|
-
#.
|
|
4
|
-
# Copyright 2014 by siberas, http://www.siberas.de
|
|
5
|
-
# This file is part of WATOBO (Web Application Tool Box) http://watobo.sourceforge.com
|
|
6
|
-
# WATOBO is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation version 2 of the License.
|
|
7
|
-
# WATOBO is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
|
|
8
|
-
# You should have received a copy of the GNU General Public License along with WATOBO; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
|
|
9
|
-
|
|
10
1
|
# @private
|
|
11
2
|
module Watobo#:nodoc: all
|
|
12
3
|
module Gui
|
|
@@ -1,12 +1,3 @@
|
|
|
1
|
-
#.
|
|
2
|
-
# select_chat_dialog.rb
|
|
3
|
-
#.
|
|
4
|
-
# Copyright 2014 by siberas, http://www.siberas.de
|
|
5
|
-
# This file is part of WATOBO (Web Application Tool Box) http://watobo.sourceforge.com
|
|
6
|
-
# WATOBO is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation version 2 of the License.
|
|
7
|
-
# WATOBO is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
|
|
8
|
-
# You should have received a copy of the GNU General Public License along with WATOBO; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
|
|
9
|
-
|
|
10
1
|
# @private
|
|
11
2
|
module Watobo#:nodoc: all
|
|
12
3
|
module Gui
|
|
@@ -1,12 +1,3 @@
|
|
|
1
|
-
#.
|
|
2
|
-
# session_management_dialog.rb
|
|
3
|
-
#.
|
|
4
|
-
# Copyright 2014 by siberas, http://www.siberas.de
|
|
5
|
-
# This file is part of WATOBO (Web Application Tool Box) http://watobo.sourceforge.com
|
|
6
|
-
# WATOBO is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation version 2 of the License.
|
|
7
|
-
# WATOBO is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
|
|
8
|
-
# You should have received a copy of the GNU General Public License along with WATOBO; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
|
|
9
|
-
|
|
10
1
|
# @private
|
|
11
2
|
module Watobo#:nodoc: all
|
|
12
3
|
module Gui
|
|
@@ -1,12 +1,3 @@
|
|
|
1
|
-
#.
|
|
2
|
-
# sites_tree.rb
|
|
3
|
-
#.
|
|
4
|
-
# Copyright 2014 by siberas, http://www.siberas.de
|
|
5
|
-
# This file is part of WATOBO (Web Application Tool Box) http://watobo.sourceforge.com
|
|
6
|
-
# WATOBO is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation version 2 of the License.
|
|
7
|
-
# WATOBO is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
|
|
8
|
-
# You should have received a copy of the GNU General Public License along with WATOBO; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
|
|
9
|
-
|
|
10
1
|
#require 'qcustomize.rb'
|
|
11
2
|
|
|
12
3
|
# @private
|
|
@@ -1,12 +1,3 @@
|
|
|
1
|
-
#.
|
|
2
|
-
# status_bar.rb
|
|
3
|
-
#.
|
|
4
|
-
# Copyright 2014 by siberas, http://www.siberas.de
|
|
5
|
-
# This file is part of WATOBO (Web Application Tool Box) http://watobo.sourceforge.com
|
|
6
|
-
# WATOBO is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation version 2 of the License.
|
|
7
|
-
# WATOBO is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
|
|
8
|
-
# You should have received a copy of the GNU General Public License along with WATOBO; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
|
|
9
|
-
|
|
10
1
|
# @private
|
|
11
2
|
module Watobo#:nodoc: all
|
|
12
3
|
module Gui
|
|
@@ -1,12 +1,3 @@
|
|
|
1
|
-
#.
|
|
2
|
-
# table_editor.rb
|
|
3
|
-
#.
|
|
4
|
-
# Copyright 2014 by siberas, http://www.siberas.de
|
|
5
|
-
# This file is part of WATOBO (Web Application Tool Box) http://watobo.sourceforge.com
|
|
6
|
-
# WATOBO is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation version 2 of the License.
|
|
7
|
-
# WATOBO is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
|
|
8
|
-
# You should have received a copy of the GNU General Public License along with WATOBO; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
|
|
9
|
-
|
|
10
1
|
# @private
|
|
11
2
|
module Watobo#:nodoc: all
|
|
12
3
|
module Gui
|
|
@@ -1,12 +1,3 @@
|
|
|
1
|
-
#.
|
|
2
|
-
# tagless_viewer.rb
|
|
3
|
-
#.
|
|
4
|
-
# Copyright 2014 by siberas, http://www.siberas.de
|
|
5
|
-
# This file is part of WATOBO (Web Application Tool Box) http://watobo.sourceforge.com
|
|
6
|
-
# WATOBO is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation version 2 of the License.
|
|
7
|
-
# WATOBO is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
|
|
8
|
-
# You should have received a copy of the GNU General Public License along with WATOBO; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
|
|
9
|
-
|
|
10
1
|
require 'watobo/gui/request_editor'
|
|
11
2
|
# @private
|
|
12
3
|
module Watobo#:nodoc: all
|
|
@@ -1,12 +1,3 @@
|
|
|
1
|
-
#.
|
|
2
|
-
# plugin.rb
|
|
3
|
-
#.
|
|
4
|
-
# Copyright 2014 by siberas, http://www.siberas.de
|
|
5
|
-
# This file is part of WATOBO (Web Application Tool Box) http://watobo.sourceforge.com
|
|
6
|
-
# WATOBO is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation version 2 of the License.
|
|
7
|
-
# WATOBO is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
|
|
8
|
-
# You should have received a copy of the GNU General Public License along with WATOBO; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
|
|
9
|
-
|
|
10
1
|
# @private
|
|
11
2
|
module Watobo#:nodoc: all
|
|
12
3
|
module Template
|
|
@@ -1,101 +1,93 @@
|
|
|
1
|
-
#.
|
|
2
|
-
# plugin2.rb
|
|
3
|
-
#.
|
|
4
|
-
# Copyright 2014 by siberas, http://www.siberas.de
|
|
5
|
-
# This file is part of WATOBO (Web Application Tool Box) http://watobo.sourceforge.com
|
|
6
|
-
# WATOBO is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation version 2 of the License.
|
|
7
|
-
# WATOBO is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
|
|
8
|
-
# You should have received a copy of the GNU General Public License along with WATOBO; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
|
|
9
|
-
|
|
10
1
|
# @private
|
|
11
|
-
module Watobo#:nodoc: all
|
|
12
|
-
class Plugin2 < FXDialogBox
|
|
13
|
-
attr :plugin_name
|
|
14
|
-
# attr :icon
|
|
15
|
-
|
|
16
|
-
include Watobo::Gui
|
|
17
|
-
include Watobo::Gui::Icons
|
|
18
|
-
|
|
19
|
-
@icon_file = nil
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
# puts caller.
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
dummy.
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
@
|
|
78
|
-
@
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
end
|
|
2
|
+
module Watobo #:nodoc: all
|
|
3
|
+
class Plugin2 < FXDialogBox
|
|
4
|
+
attr :plugin_name
|
|
5
|
+
# attr :icon
|
|
6
|
+
|
|
7
|
+
include Watobo::Gui
|
|
8
|
+
include Watobo::Gui::Icons
|
|
9
|
+
|
|
10
|
+
@icon_file = nil
|
|
11
|
+
|
|
12
|
+
def self.get_icon
|
|
13
|
+
@icon_file
|
|
14
|
+
end
|
|
15
|
+
|
|
16
|
+
def self.icon_file(icon_file)
|
|
17
|
+
# puts "Caller >> #{caller.class}"
|
|
18
|
+
# puts caller.to_yaml
|
|
19
|
+
|
|
20
|
+
dummy = caller.first.split(":")
|
|
21
|
+
dummy.pop
|
|
22
|
+
file = dummy.join(":")
|
|
23
|
+
|
|
24
|
+
@icon_file = File.join(File.dirname(file), "..", "icons", icon_file)
|
|
25
|
+
end
|
|
26
|
+
|
|
27
|
+
def load_icon
|
|
28
|
+
icon = self.class.get_icon
|
|
29
|
+
# puts "* loading icon > #{icon}"
|
|
30
|
+
self.icon = Watobo::Gui.load_icon(icon) unless icon.nil?
|
|
31
|
+
end
|
|
32
|
+
|
|
33
|
+
def subscribe(event, &callback)
|
|
34
|
+
(@event_dispatcher_listeners[event] ||= []) << callback
|
|
35
|
+
end
|
|
36
|
+
|
|
37
|
+
def clearEvents(event)
|
|
38
|
+
@event_dispatcher_listener[event].clear
|
|
39
|
+
end
|
|
40
|
+
|
|
41
|
+
def notify(event, *args)
|
|
42
|
+
if @event_dispatcher_listeners[event]
|
|
43
|
+
@event_dispatcher_listeners[event].each do |m|
|
|
44
|
+
m.call(*args) if m.respond_to? :call
|
|
45
|
+
end
|
|
46
|
+
end
|
|
47
|
+
end
|
|
48
|
+
|
|
49
|
+
def updateView()
|
|
50
|
+
raise "!!! updateView not defined"
|
|
51
|
+
end
|
|
52
|
+
|
|
53
|
+
def logger(msg)
|
|
54
|
+
t = Time.now
|
|
55
|
+
now = t.strftime("%m/%d/%Y @ %H:%M:%S")
|
|
56
|
+
|
|
57
|
+
@update_lock.synchronize do
|
|
58
|
+
text = "\n#{now}: msg"
|
|
59
|
+
@log_messages << text
|
|
60
|
+
end
|
|
61
|
+
end
|
|
62
|
+
|
|
63
|
+
def initialize(owner, title, project, opts)
|
|
64
|
+
super(owner, title, :opts => DECOR_ALL, :width => 800, :height => 600)
|
|
65
|
+
|
|
66
|
+
@icon = nil
|
|
67
|
+
load_icon()
|
|
68
|
+
@plugin_name = "undefined"
|
|
69
|
+
@event_dispatcher_listeners = Hash.new
|
|
70
|
+
@update_lock = Mutex.new
|
|
71
|
+
|
|
72
|
+
@log_messages = []
|
|
73
|
+
|
|
74
|
+
add_update_timer()
|
|
75
|
+
|
|
76
|
+
end
|
|
77
|
+
|
|
78
|
+
private
|
|
79
|
+
|
|
80
|
+
def on_update_timer
|
|
81
|
+
|
|
82
|
+
end
|
|
83
|
+
|
|
84
|
+
def add_update_timer()
|
|
85
|
+
Watobo.save_thread{
|
|
86
|
+
@update_lock.synchronize do
|
|
87
|
+
on_update_timer()
|
|
88
|
+
end
|
|
89
|
+
}
|
|
90
|
+
end
|
|
91
|
+
|
|
92
|
+
end
|
|
93
|
+
end
|