onlinegames_info_connect 0.0.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +7 -0
- data/MIT-LICENSE +20 -0
- data/README.rdoc +3 -0
- data/Rakefile +34 -0
- data/app/assets/images/onlinegames_info_connect/ogi_small_logo.png +0 -0
- data/app/assets/javascripts/onlinegames_info_connect/utils.js.coffee +35 -0
- data/app/controllers/application_controller.rb +2 -0
- data/app/controllers/control_center/languages_controller.rb +90 -0
- data/app/controllers/control_center/user_roles_controller.rb +88 -0
- data/app/controllers/control_center/users_controller.rb +103 -0
- data/app/controllers/session_controller.rb +113 -0
- data/app/helpers/application_helper.rb +2 -0
- data/app/helpers/session_helper.rb +2 -0
- data/app/models/base_user.rb +54 -0
- data/app/models/language.rb +3 -0
- data/app/models/user_event.rb +16 -0
- data/app/models/user_role.rb +4 -0
- data/app/views/control_center/dashboard.html.erb +5 -0
- data/app/views/control_center/languages/_form.html.erb +25 -0
- data/app/views/control_center/languages/edit.html.erb +6 -0
- data/app/views/control_center/languages/index.html.erb +22 -0
- data/app/views/control_center/languages/new.html.erb +5 -0
- data/app/views/control_center/languages/show.html.erb +13 -0
- data/app/views/control_center/user_roles/_form.html.erb +25 -0
- data/app/views/control_center/user_roles/edit.html.erb +6 -0
- data/app/views/control_center/user_roles/index.html.erb +25 -0
- data/app/views/control_center/user_roles/new.html.erb +5 -0
- data/app/views/control_center/user_roles/show.html.erb +15 -0
- data/app/views/control_center/users/_form.html.erb +14 -0
- data/app/views/control_center/users/edit.html.erb +6 -0
- data/app/views/control_center/users/index.html.erb +56 -0
- data/app/views/control_center/users/show.html.erb +95 -0
- data/app/views/layouts/admin.html.erb +45 -0
- data/app/views/layouts/none.html.erb +1 -0
- data/app/views/layouts/simple.html.erb +5 -0
- data/app/views/session/_signup.html.erb +31 -0
- data/app/views/session/index.html.erb +4 -0
- data/config/routes.rb +23 -0
- data/db/migrate/20100604210033_create_users.rb +87 -0
- data/db/migrate/20100604222947_create_languages.rb +13 -0
- data/db/migrate/20100607191655_create_guilds.rb +26 -0
- data/db/migrate/20100612173309_create_user_roles.rb +14 -0
- data/lib/onlinegames_info_connect.rb +4 -0
- data/lib/onlinegames_info_connect/authenticated_system.rb +91 -0
- data/lib/onlinegames_info_connect/engine.rb +14 -0
- data/lib/onlinegames_info_connect/oauth_friends.rb +24 -0
- data/lib/onlinegames_info_connect/oauth_guild.rb +19 -0
- data/lib/onlinegames_info_connect/oauth_medals.rb +11 -0
- data/lib/onlinegames_info_connect/oauth_messages.rb +21 -0
- data/lib/onlinegames_info_connect/oauth_premium.rb +43 -0
- data/lib/onlinegames_info_connect/oauth_users.rb +11 -0
- data/lib/onlinegames_info_connect/ogi_oauth.rb +35 -0
- data/lib/onlinegames_info_connect/ogi_token_api.rb +49 -0
- data/lib/onlinegames_info_connect/test_helper.rb +7 -0
- data/lib/onlinegames_info_connect/version.rb +3 -0
- data/lib/tasks/onlinegames_info_connect_tasks.rake +4 -0
- data/test/dummy/README.rdoc +28 -0
- data/test/dummy/Rakefile +6 -0
- data/test/dummy/app/assets/javascripts/application.js +13 -0
- data/test/dummy/app/assets/stylesheets/application.css +13 -0
- data/test/dummy/app/controllers/application_controller.rb +5 -0
- data/test/dummy/app/helpers/application_helper.rb +2 -0
- data/test/dummy/app/views/layouts/application.html.erb +14 -0
- data/test/dummy/bin/bundle +3 -0
- data/test/dummy/bin/rails +4 -0
- data/test/dummy/bin/rake +4 -0
- data/test/dummy/config.ru +4 -0
- data/test/dummy/config/application.rb +23 -0
- data/test/dummy/config/boot.rb +5 -0
- data/test/dummy/config/database.yml +25 -0
- data/test/dummy/config/environment.rb +5 -0
- data/test/dummy/config/environments/development.rb +29 -0
- data/test/dummy/config/environments/production.rb +80 -0
- data/test/dummy/config/environments/test.rb +36 -0
- data/test/dummy/config/initializers/backtrace_silencers.rb +7 -0
- data/test/dummy/config/initializers/filter_parameter_logging.rb +4 -0
- data/test/dummy/config/initializers/inflections.rb +16 -0
- data/test/dummy/config/initializers/mime_types.rb +5 -0
- data/test/dummy/config/initializers/secret_token.rb +12 -0
- data/test/dummy/config/initializers/session_store.rb +3 -0
- data/test/dummy/config/initializers/wrap_parameters.rb +14 -0
- data/test/dummy/config/locales/en.yml +23 -0
- data/test/dummy/config/routes.rb +49 -0
- data/test/dummy/db/test.sqlite3 +0 -0
- data/test/dummy/log/test.log +5 -0
- data/test/dummy/public/404.html +58 -0
- data/test/dummy/public/422.html +58 -0
- data/test/dummy/public/500.html +57 -0
- data/test/dummy/public/favicon.ico +0 -0
- data/test/integration/navigation_test.rb +10 -0
- data/test/oauth_mock.rb +167 -0
- data/test/onlinegames_info_connect_test.rb +7 -0
- data/test/test_helper.rb +15 -0
- metadata +214 -0
@@ -0,0 +1,45 @@
|
|
1
|
+
<!DOCTYPE html>
|
2
|
+
<html>
|
3
|
+
<head>
|
4
|
+
<title>Admin</title>
|
5
|
+
<meta http-equiv="content-type" content="text/html; charset=utf-8" />
|
6
|
+
<link href="/admin/admin.css" media="screen" rel="stylesheet" type="text/css" />
|
7
|
+
<%= javascript_include_tag 'application' %>
|
8
|
+
<%= csrf_meta_tag %>
|
9
|
+
</head>
|
10
|
+
|
11
|
+
<body>
|
12
|
+
<div id="main">
|
13
|
+
<div id="menu">
|
14
|
+
<ul>
|
15
|
+
<li><%= link_to 'Users', control_center_users_path(), {:class => (controller.controller_name == 'users')?'selected':''} %></li>
|
16
|
+
<li><%= link_to 'User Roles', control_center_user_roles_path(), {:class => (controller.controller_name == 'user_roles')?'selected':''} %></li>
|
17
|
+
<li><%= link_to 'Languages', control_center_languages_url(), {:class => (controller.controller_name == 'languages')?'selected':''} %></li>
|
18
|
+
<li style="text-align: center;">------------------------------</li>
|
19
|
+
<%= render :partial => 'layouts/admin_menu' %>
|
20
|
+
<li><%= link_to 'Logout', logout_path %></li>
|
21
|
+
</ul>
|
22
|
+
</div>
|
23
|
+
<div id="content">
|
24
|
+
<% for name in [:notice, :warning, :message] %>
|
25
|
+
<% if flash[name] %>
|
26
|
+
<div id="flash_msg">
|
27
|
+
<b><%= t("notice") %></b>
|
28
|
+
<div id="<%= name %>">
|
29
|
+
<div><%= flash[name] %></div>
|
30
|
+
</div>
|
31
|
+
</div>
|
32
|
+
<% end %>
|
33
|
+
<% end %>
|
34
|
+
|
35
|
+
<%= yield %>
|
36
|
+
</div>
|
37
|
+
|
38
|
+
<div style="clear: both;"></div>
|
39
|
+
|
40
|
+
<div id="footer">
|
41
|
+
<div id="copy_r"><a href="http://www.odania-it.de" target="_blank">Copyright by Mike Petersen Odania IT</a></div>
|
42
|
+
</div>
|
43
|
+
</div>
|
44
|
+
</body>
|
45
|
+
</html>
|
@@ -0,0 +1 @@
|
|
1
|
+
<%= yield %>
|
@@ -0,0 +1,31 @@
|
|
1
|
+
<div class="box" style="width: 50%; float: left;">
|
2
|
+
<h1><%= t 'Register' %></h1>
|
3
|
+
|
4
|
+
<%= t "Registration is free" %>
|
5
|
+
|
6
|
+
<% if 'development'.include?(Rails.env) %>
|
7
|
+
<%= simple_form_for(@user, :url => user_path) do |f| %>
|
8
|
+
<%= f.input :name, :input_html => {:size => 20} %>
|
9
|
+
<%= f.input :email, :input_html => {:size => 20} %>
|
10
|
+
<%= f.input :password, :input_html => {:size => 20} %>
|
11
|
+
<%= f.input :password_repeat, :input_html => {:size => 20} %>
|
12
|
+
<%= f.submit t('Play now'), {class: 'large_btn'} %>
|
13
|
+
<% end %>
|
14
|
+
<% else %>
|
15
|
+
<a href="<%= authorize_url %>"><%= image_tag "ogi_small_logo.png", :style => 'float: left;', :alt => 'Onlinegames-Info.com' %></a>
|
16
|
+
<% end %>
|
17
|
+
</div>
|
18
|
+
|
19
|
+
<div class="box" style="width: 50%; float: left;">
|
20
|
+
<h1><%= t 'Login' %></h1>
|
21
|
+
|
22
|
+
<div style="float:left">
|
23
|
+
<a href="<%= authorize_url %>"><%= image_tag "ogi_small_logo.png", :style => 'float: left;', :alt => 'Onlinegames-Info.com' %></a>
|
24
|
+
</div>
|
25
|
+
|
26
|
+
<% if 'development'.include?(Rails.env) %>
|
27
|
+
<a href="http://apps.facebook.com/piratebay-game/"><img src="/images/facebook.png" alt="Facebook"/></a>
|
28
|
+
<% end %>
|
29
|
+
</div>
|
30
|
+
|
31
|
+
<div style="clear: both;"></div>
|
data/config/routes.rb
ADDED
@@ -0,0 +1,23 @@
|
|
1
|
+
Rails.application.routes.draw do
|
2
|
+
get "authorize" => "session#new"
|
3
|
+
get "callback" => "session#callback"
|
4
|
+
|
5
|
+
get "login" => "session#index"
|
6
|
+
get "sign_up" => "session#index"
|
7
|
+
match "logout" => "session#destroy", via: [:get, :post, :delete]
|
8
|
+
post 'users' => "users#create", :as => :user
|
9
|
+
|
10
|
+
namespace :control_center do
|
11
|
+
resources :languages, :user_roles
|
12
|
+
resources :users do
|
13
|
+
collection do
|
14
|
+
get :check_user
|
15
|
+
get :login
|
16
|
+
end
|
17
|
+
end
|
18
|
+
end
|
19
|
+
|
20
|
+
namespace :game_config do
|
21
|
+
root :to => "dashboard#index"
|
22
|
+
end
|
23
|
+
end
|
@@ -0,0 +1,87 @@
|
|
1
|
+
class OgiConnect < ActiveRecord::Migration
|
2
|
+
def self.up
|
3
|
+
create_table :users do |t|
|
4
|
+
t.integer :ogi_uid, :null => false
|
5
|
+
t.integer :char_id, :null => true
|
6
|
+
t.string :name
|
7
|
+
t.string :email
|
8
|
+
t.string :crypted_password, :null => true
|
9
|
+
t.string :password_salt, :null => true
|
10
|
+
t.string :persistence_token
|
11
|
+
t.string :single_access_token
|
12
|
+
t.string :perishable_token
|
13
|
+
t.string :language
|
14
|
+
t.date :birthday
|
15
|
+
t.string :gender
|
16
|
+
t.datetime :premium_time, :null => false
|
17
|
+
t.string :user_status
|
18
|
+
t.integer :alliance_id
|
19
|
+
t.integer :ref_id
|
20
|
+
t.string :campaign
|
21
|
+
t.integer :coins
|
22
|
+
t.boolean :is_bot, :default => false
|
23
|
+
t.integer :daily_login_count, :default => 0
|
24
|
+
t.datetime :vacation
|
25
|
+
|
26
|
+
t.integer :login_count, :null => false, :default => 0
|
27
|
+
t.integer :failed_login_count, :null => false, :default => 0
|
28
|
+
t.datetime :last_request_at
|
29
|
+
t.datetime :current_login_at
|
30
|
+
t.datetime :last_login_at
|
31
|
+
t.string :current_login_ip
|
32
|
+
t.string :last_login_ip
|
33
|
+
|
34
|
+
t.column "rnk", :integer, :default => 0, :null => false
|
35
|
+
t.column "rnkgespkt", :integer, :default => 0, :null => false
|
36
|
+
t.column "rnkmilpkt", :integer, :default => 0, :null => false
|
37
|
+
t.column "rnkforpkt", :integer, :default => 0, :null => false
|
38
|
+
t.column "rnkspipkt", :integer, :default => 0, :null => false
|
39
|
+
t.column "rnkgebpkt", :integer, :default => 0, :null => false
|
40
|
+
t.column "rnk_beruf", :integer, :default => 0, :null => false
|
41
|
+
t.column "member", :integer, :default => 0, :null => false
|
42
|
+
t.column "rnk_werbepkt", :integer, :default => 0, :null => false
|
43
|
+
t.column "rnk_geworbene", :integer, :default => 0, :null => false
|
44
|
+
t.column "spio_missionen", :integer, :default => 0, :null => false
|
45
|
+
t.column "sabo_missionen", :integer, :default => 0, :null => false
|
46
|
+
t.column "gegenspio_missionen", :integer, :default => 0, :null => false
|
47
|
+
t.column "spio_missionen_success", :integer, :default => 0, :null => false
|
48
|
+
t.column "sabo_missionen_success", :integer, :default => 0, :null => false
|
49
|
+
t.column "gegenspio_missionen_success", :integer, :default => 0, :null => false
|
50
|
+
t.column "spio_missionen_failure", :integer, :default => 0, :null => false
|
51
|
+
t.column "sabo_missionen_failure", :integer, :default => 0, :null => false
|
52
|
+
t.column "gegenspio_missionen_failure", :integer, :default => 0, :null => false
|
53
|
+
t.column "spys_captured", :integer, :default => 0, :null => false
|
54
|
+
t.column "spys_killed", :integer, :default => 0, :null => false
|
55
|
+
t.column "spys_randsom_got", :integer, :default => 0, :null => false
|
56
|
+
t.column "spys_randsom_payed", :integer, :default => 0, :null => false
|
57
|
+
|
58
|
+
t.column :oauth_token, :string
|
59
|
+
t.column :info_race_id, :integer
|
60
|
+
|
61
|
+
t.timestamps
|
62
|
+
end
|
63
|
+
|
64
|
+
add_index :users, :name
|
65
|
+
add_index :users, :persistence_token
|
66
|
+
add_index :users, :rnk
|
67
|
+
|
68
|
+
create_table :languages do |t|
|
69
|
+
t.string :short
|
70
|
+
t.string :name
|
71
|
+
t.timestamps
|
72
|
+
end
|
73
|
+
|
74
|
+
create_table :user_roles do |t|
|
75
|
+
t.integer :user_id
|
76
|
+
t.string :role
|
77
|
+
|
78
|
+
t.timestamps
|
79
|
+
end
|
80
|
+
end
|
81
|
+
|
82
|
+
def self.down
|
83
|
+
drop_table :users
|
84
|
+
drop_table :languages
|
85
|
+
drop_table :user_roles
|
86
|
+
end
|
87
|
+
end
|
@@ -0,0 +1,26 @@
|
|
1
|
+
class CreateGuilds < ActiveRecord::Migration
|
2
|
+
#def self.up
|
3
|
+
# create_table :guilds do |t|
|
4
|
+
# t.string :name
|
5
|
+
# t.string :tag
|
6
|
+
# t.integer :ogi_alliance_id, :default => 0
|
7
|
+
# t.integer :gold, :null => false
|
8
|
+
# t.integer :diamanten, :null => false
|
9
|
+
# t.text :description
|
10
|
+
# t.integer :member_limit, :null => false
|
11
|
+
# t.integer :experience_bonus, :null => false
|
12
|
+
# t.integer :gold_bonus, :null => false
|
13
|
+
# t.string :image_file_name
|
14
|
+
# t.string :image_content_type
|
15
|
+
# t.integer :image_file_size
|
16
|
+
# t.timestamps
|
17
|
+
# end
|
18
|
+
#
|
19
|
+
# add_index :guilds, [:name]
|
20
|
+
# add_index :guilds, [:tag]
|
21
|
+
#end
|
22
|
+
#
|
23
|
+
#def self.down
|
24
|
+
# drop_table :guilds
|
25
|
+
#end
|
26
|
+
end
|
@@ -0,0 +1,91 @@
|
|
1
|
+
module OnlinegamesInfoConnect
|
2
|
+
module AuthenticatedSystem
|
3
|
+
mattr_accessor :my_user, :roles
|
4
|
+
|
5
|
+
protected
|
6
|
+
|
7
|
+
def current_user
|
8
|
+
return false if session[:user_id].nil?
|
9
|
+
begin
|
10
|
+
@my_user = User.where(:id => session[:user_id]).first if @my_user.nil?
|
11
|
+
return @my_user
|
12
|
+
rescue
|
13
|
+
return false
|
14
|
+
end
|
15
|
+
end
|
16
|
+
|
17
|
+
def logged_in?
|
18
|
+
(current_user.nil? or current_user.class != User) ? false : true
|
19
|
+
end
|
20
|
+
|
21
|
+
def authorized?
|
22
|
+
|
23
|
+
end
|
24
|
+
|
25
|
+
def require_no_user
|
26
|
+
if logged_in? then
|
27
|
+
redirect_to game_path
|
28
|
+
return false
|
29
|
+
end
|
30
|
+
|
31
|
+
return true
|
32
|
+
end
|
33
|
+
|
34
|
+
def require_user
|
35
|
+
if not logged_in? then
|
36
|
+
store_location
|
37
|
+
|
38
|
+
respond_to do |format|
|
39
|
+
format.html { redirect_to login_path }
|
40
|
+
format.json { render :json => {status: 'not_authenticated'} }
|
41
|
+
end
|
42
|
+
|
43
|
+
return false
|
44
|
+
end
|
45
|
+
|
46
|
+
return init_user
|
47
|
+
end
|
48
|
+
|
49
|
+
def has_permission(role_type)
|
50
|
+
return false if not logged_in?
|
51
|
+
return current_user.has_right(role_type)
|
52
|
+
end
|
53
|
+
|
54
|
+
def check_user_role(role_type)
|
55
|
+
@roles = {} if @roles.nil?
|
56
|
+
if @roles[role_type].nil?
|
57
|
+
role = UserRole.where(:user_id => current_user.id, :role => role_type).first
|
58
|
+
@roles[role_type] = role.nil? ? false : true
|
59
|
+
end
|
60
|
+
|
61
|
+
return @roles[role_type]
|
62
|
+
end
|
63
|
+
|
64
|
+
def check_permission(role_type)
|
65
|
+
if not has_permission(role_type) then
|
66
|
+
redirect_to game_path
|
67
|
+
return false
|
68
|
+
end
|
69
|
+
|
70
|
+
return true
|
71
|
+
end
|
72
|
+
|
73
|
+
|
74
|
+
def check_user
|
75
|
+
if not logged_in? then
|
76
|
+
return true
|
77
|
+
end
|
78
|
+
|
79
|
+
return init_user
|
80
|
+
end
|
81
|
+
|
82
|
+
def store_location
|
83
|
+
session[:return_to] = request.fullpath
|
84
|
+
end
|
85
|
+
|
86
|
+
def redirect_back_or_default(default)
|
87
|
+
redirect_to(session[:return_to] || default)
|
88
|
+
session[:return_to] = nil
|
89
|
+
end
|
90
|
+
end
|
91
|
+
end
|
@@ -0,0 +1,14 @@
|
|
1
|
+
module OnlinegamesInfoConnect
|
2
|
+
class Engine < ::Rails::Engine
|
3
|
+
require File.dirname(__FILE__)+'/authenticated_system'
|
4
|
+
require File.dirname(__FILE__)+'/oauth_friends'
|
5
|
+
require File.dirname(__FILE__)+'/oauth_guild'
|
6
|
+
require File.dirname(__FILE__)+'/oauth_medals'
|
7
|
+
require File.dirname(__FILE__)+'/oauth_messages'
|
8
|
+
require File.dirname(__FILE__)+'/oauth_premium'
|
9
|
+
require File.dirname(__FILE__)+'/oauth_users'
|
10
|
+
require File.dirname(__FILE__)+'/ogi_oauth'
|
11
|
+
require File.dirname(__FILE__)+'/ogi_token_api'
|
12
|
+
require File.dirname(__FILE__)+'/test_helper'
|
13
|
+
end
|
14
|
+
end
|
@@ -0,0 +1,24 @@
|
|
1
|
+
module OnlinegamesInfoConnect
|
2
|
+
module OauthFriends
|
3
|
+
|
4
|
+
def friends_index(user)
|
5
|
+
user.token.get("/api/friends").parsed
|
6
|
+
end
|
7
|
+
|
8
|
+
def friends_show(user, friend_id)
|
9
|
+
user.token.get("/api/friends/#{friend_id}").parsed
|
10
|
+
end
|
11
|
+
|
12
|
+
def friends_destroy(user, friend_id)
|
13
|
+
user.token.delete("/api/friends/#{friend_id}").parsed
|
14
|
+
end
|
15
|
+
|
16
|
+
def friends_create(user, to_char_id, to_unknown)
|
17
|
+
return user.token.post("/api/friends", {params: {to_char_id: to_char_id, to_unknown: to_unknown}}).parsed
|
18
|
+
end
|
19
|
+
|
20
|
+
def friends_confirm(user, friend_id)
|
21
|
+
return user.token.post("/api/friends/#{friend_id}/confirm").parsed
|
22
|
+
end
|
23
|
+
end
|
24
|
+
end
|
@@ -0,0 +1,19 @@
|
|
1
|
+
module OnlinegamesInfoConnect
|
2
|
+
module OauthGuild
|
3
|
+
def create_guild(guild, user)
|
4
|
+
return user.token.post("/api/guilds", {body: {name: guild.name, tag: guild.tag, user_id: user.ogi_uid, char_id: user.char_id}}).parsed
|
5
|
+
end
|
6
|
+
|
7
|
+
def remove_guild(guild, user)
|
8
|
+
return user.token.post("/api/guilds/remove", {body: {guild_id: guild.ogi_alliance_id}}).parsed
|
9
|
+
end
|
10
|
+
|
11
|
+
def add_user(guild, user, new_member)
|
12
|
+
return user.token.post("/api/guilds/add_user", {body: {guild_id: guild.ogi_alliance_id, user_id: new_member.ogi_uid, char_id: new_member.char_id}}).parsed
|
13
|
+
end
|
14
|
+
|
15
|
+
def remove_user_from_guild(guild, user, member)
|
16
|
+
return user.token.post("/api/guilds/remove_user", {body: {guild_id: guild.ogi_alliance_id, user_id: member.ogi_uid, char_id: member.char_id}}).parsed
|
17
|
+
end
|
18
|
+
end
|
19
|
+
end
|
@@ -0,0 +1,11 @@
|
|
1
|
+
module OnlinegamesInfoConnect
|
2
|
+
module OauthMedals
|
3
|
+
def add_medal(user, medal_id, level)
|
4
|
+
return user.token.post("/api/medals/#{user.id}", {body: {medal_id: medal_id, level: level}}).parsed
|
5
|
+
end
|
6
|
+
|
7
|
+
def get_medals(user)
|
8
|
+
return user.token.get("/api/medals/#{user.id}").parsed
|
9
|
+
end
|
10
|
+
end
|
11
|
+
end
|
@@ -0,0 +1,21 @@
|
|
1
|
+
module OnlinegamesInfoConnect
|
2
|
+
module OauthMessages
|
3
|
+
|
4
|
+
def messages_index(user, mailbox)
|
5
|
+
user.token.get("/api/messages", {params: {mailbox: mailbox}}).parsed
|
6
|
+
end
|
7
|
+
|
8
|
+
def messages_show(user, message_id)
|
9
|
+
user.token.get("/api/messages/#{message_id}").parsed
|
10
|
+
end
|
11
|
+
|
12
|
+
def messages_destroy(user, message_id)
|
13
|
+
user.token.delete("/api/messages/#{message_id}").parsed
|
14
|
+
end
|
15
|
+
|
16
|
+
def messages_create(user, ip, message_type, to_char_id, to_unknown, subject, msg_text)
|
17
|
+
return user.token.post("/api/messages", {params: {ip: ip, message_type: message_type, subject: subject, message_text: msg_text,
|
18
|
+
to_char_id: to_char_id, to_unknown: to_unknown}}).parsed
|
19
|
+
end
|
20
|
+
end
|
21
|
+
end
|