PluginProbe ʕ •ᴥ•ʔ
AI Engine – The Chatbot, AI Framework & MCP for WordPress / 0.0.2
AI Engine – The Chatbot, AI Framework & MCP for WordPress v0.0.2
3.5.7 3.5.6 3.5.5 3.5.4 3.5.3 3.5.2 3.5.1 3.5.0 3.4.9 3.4.8 3.4.7 0.2.1 1.6.91 0.2.2 1.6.92 0.2.3 1.6.93 0.2.4 1.6.94 0.2.5 1.6.95 0.2.6 1.6.96 0.2.7 1.6.97 0.2.8 1.6.98 0.2.9 1.6.99 0.3.0 1.7.0 0.3.1 1.7.1 0.3.2 1.7.2 0.3.3 1.7.3 0.3.4 1.7.4 0.3.5 1.7.5 0.3.6 1.7.6 0.4.0 1.7.7 0.4.1 1.7.8 0.4.2 1.7.9 0.4.3 1.8.0 0.4.4 1.8.1 0.4.5 1.8.2 0.4.6 1.8.3 0.4.7 1.8.4 0.4.8 1.8.5 0.4.9 1.8.6 0.5.0 1.8.7 0.5.1 1.8.8 0.5.2 1.8.9 0.5.3 1.9.0 0.5.4 1.9.1 0.5.5 1.9.2 0.5.6 1.9.3 0.5.7 1.9.4 0.5.8 1.9.5 0.5.9 1.9.6 0.6.0 1.9.7 0.6.1 1.9.8 0.6.2 1.9.81 0.6.3 1.9.82 0.6.4 1.9.83 0.6.5 1.9.84 0.6.6 1.9.85 0.6.7 1.9.86 0.6.8 1.9.87 0.6.9 1.9.88 0.7.0 1.9.89 0.7.1 1.9.90 0.7.2 1.9.91 0.7.3 1.9.92 0.7.4 1.9.93 0.7.5 1.9.94 0.7.6 1.9.95 0.7.7 1.9.96 0.7.8 1.9.97 0.7.9 1.9.98 0.8.0 1.9.99 0.8.1 2.0.0 0.8.2 2.0.1 0.8.3 2.0.2 0.8.4 2.0.3 0.8.5 2.0.4 0.8.6 2.0.5 0.8.7 2.0.6 0.8.8 2.0.7 0.8.9 2.0.8 0.9.0 2.0.9 0.9.2 2.1.0 0.9.3 2.1.1 0.9.4 2.1.2 0.9.5 2.1.3 0.9.6 2.1.4 0.9.7 2.1.5 0.9.8 2.1.6 0.9.81 2.1.7 0.9.82 2.1.8 0.9.83 2.1.9 0.9.84 2.2.0 0.9.85 2.2.1 0.9.86 2.2.2 0.9.87 2.2.3 0.9.88 2.2.4 0.9.89 2.2.5 0.9.9 2.2.51 0.9.91 2.2.52 0.9.92 2.2.53 0.9.93 2.2.54 0.9.94 2.2.56 0.9.95 2.2.57 0.9.96 2.2.6 0.9.97 2.2.60 0.9.98 2.2.61 0.9.99 2.2.62 1.0.0 2.2.63 1.0.01 2.2.70 1.0.1 2.2.80 1.0.2 2.2.81 1.0.3 2.2.90 1.0.4 2.2.91 1.0.5 2.2.92 1.0.6 2.2.93 1.0.7 2.2.94 1.0.8 2.2.95 1.0.9 2.3.0 1.1.0 2.3.1 1.1.1 2.3.2 1.1.2 2.3.3 1.1.3 2.3.4 1.1.4 2.3.5 1.1.5 2.3.6 1.1.6 2.3.7 1.1.7 2.3.8 1.1.8 2.3.9 1.1.9 2.4.0 1.2.0 2.4.1 1.2.1 2.4.2 1.2.2 2.4.3 1.2.21 2.4.4 1.2.3 2.4.5 1.2.30 2.4.6 1.3.0 2.4.7 1.3.1 2.4.8 1.3.2 2.4.9 1.3.3 2.5.0 1.3.31 2.5.1 1.3.32 2.5.2 1.3.33 2.5.3 1.3.34 2.5.4 1.3.35 2.5.5 1.3.36 2.5.6 1.3.37 2.5.7 1.3.38 2.5.8 1.3.39 2.5.9 1.3.40 2.6.0 1.3.41 2.6.1 1.3.42 2.6.2 1.3.43 2.6.3 1.3.44 2.6.5 1.3.45 2.6.6 1.3.46 2.6.7 1.3.47 2.6.8 1.3.48 2.6.9 1.3.49 2.7.0 1.3.50 2.7.1 1.3.51 2.7.2 1.3.52 2.7.3 1.3.53 2.7.4 1.3.54 2.7.5 1.3.56 2.7.6 1.3.57 2.7.7 1.3.58 2.7.8 1.3.59 2.7.9 1.3.60 2.8.0 1.3.61 2.8.1 1.3.62 2.8.2 1.3.63 2.8.3 1.3.64 2.8.4 1.3.65 2.8.5 1.3.66 2.8.6 1.3.67 2.8.7 1.3.68 2.8.8 1.3.69 2.8.9 1.3.70 2.9.0 1.3.71 2.9.1 1.3.72 2.9.2 1.3.73 2.9.3 1.3.74 2.9.4 1.3.75 2.9.5 1.3.76 2.9.6 1.3.77 2.9.7 1.3.78 2.9.8 1.3.79 2.9.9 1.3.80 3.0.0 1.3.81 3.0.1 1.3.82 3.0.2 1.3.83 3.0.3 1.3.84 3.0.4 1.3.85 3.0.5 1.3.86 3.0.6 1.3.87 3.0.7 1.3.88 3.0.8 1.3.89 3.0.9 1.3.90 3.1.0 1.3.91 3.1.1 1.3.92 3.1.2 1.3.93 3.1.3 1.3.94 3.1.4 1.3.95 3.1.5 1.3.96 3.1.6 1.3.97 3.1.7 1.3.98 3.1.8 1.3.99 3.1.9 1.4.0 3.2.0 1.4.1 3.2.1 1.4.2 3.2.2 1.4.3 3.2.3 1.4.4 3.2.4 1.4.5 3.2.5 1.4.6 3.2.6 1.4.7 3.2.7 1.4.8 3.2.8 1.4.9 3.2.9 1.5.0 3.3.0 1.5.1 3.3.1 1.5.2 3.3.2 1.5.3 3.3.3 1.5.4 3.3.4 1.5.5 3.3.5 1.5.6 3.3.6 1.5.7 3.3.7 1.5.8 3.3.8 1.5.9 3.3.9 1.6.0 3.4.0 1.6.1 3.4.1 1.6.2 3.4.2 1.6.3 3.4.3 1.6.5 3.4.4 1.6.51 3.4.5 1.6.52 3.4.6 1.6.53 1.6.54 1.6.55 1.6.56 1.6.57 1.6.58 1.6.59 1.6.60 1.6.61 1.6.62 1.6.63 1.6.64 1.6.65 1.6.66 1.6.67 1.6.68 trunk 1.6.69 0.0.1 1.6.70 0.0.2 1.6.71 0.0.3 1.6.72 0.0.4 1.6.73 0.0.5 1.6.74 0.0.6 1.6.75 0.0.7 1.6.76 0.0.8 1.6.77 0.0.9 1.6.78 0.1.0 1.6.79 0.1.1 1.6.81 0.1.2 1.6.82 0.1.3 1.6.83 0.1.4 1.6.84 0.1.5 1.6.85 0.1.6 1.6.86 0.1.7 1.6.87 0.1.8 1.6.88 0.1.9 1.6.89 0.2.0 1.6.90
ai-engine / classes / rest.php
ai-engine / classes Last commit date
admin.php 3 years ago core.php 3 years ago init.php 3 years ago openai.php 3 years ago rest.php 3 years ago ui.php 3 years ago
rest.php
164 lines
1 <?php
2
3 class Meow_MWAI_Rest
4 {
5 private $admin = null;
6 private $core = null;
7 private $namespace = 'ai-engine/v1';
8
9 public function __construct( $core, $admin ) {
10 if ( !current_user_can( 'administrator' ) ) {
11 return;
12 }
13 $this->core = $core;
14 $this->admin = $admin;
15 add_action( 'rest_api_init', array( $this, 'rest_api_init' ) );
16 }
17
18 function rest_api_init() {
19 try {
20 // SETTINGS
21 register_rest_route( $this->namespace, '/update_option', array(
22 'methods' => 'POST',
23 'permission_callback' => array( $this->core, 'can_access_settings' ),
24 'callback' => array( $this, 'rest_update_option' )
25 ) );
26 register_rest_route( $this->namespace, '/all_settings', array(
27 'methods' => 'GET',
28 'permission_callback' => array( $this->core, 'can_access_settings' ),
29 'callback' => array( $this, 'rest_all_settings' ),
30 ) );
31 register_rest_route( $this->namespace, '/completions', array(
32 'methods' => 'POST',
33 'permission_callback' => array( $this->core, 'can_access_features' ),
34 'callback' => array( $this, 'completions' ),
35 ) );
36 register_rest_route( $this->namespace, '/generate_titles', array(
37 'methods' => 'POST',
38 'permission_callback' => array( $this->core, 'can_access_features' ),
39 'callback' => array( $this, 'generate_titles' ),
40 ) );
41 register_rest_route( $this->namespace, '/generate_excerpts', array(
42 'methods' => 'POST',
43 'permission_callback' => array( $this->core, 'can_access_features' ),
44 'callback' => array( $this, 'generate_excerpts' ),
45 ) );
46 register_rest_route( $this->namespace, '/update_post_title', array(
47 'methods' => 'POST',
48 'permission_callback' => array( $this->core, 'can_access_features' ),
49 'callback' => array( $this, 'update_post_title' ),
50 ) );
51 register_rest_route( $this->namespace, '/update_post_excerpt', array(
52 'methods' => 'POST',
53 'permission_callback' => array( $this->core, 'can_access_features' ),
54 'callback' => array( $this, 'update_post_excerpt' ),
55 ) );
56 }
57 catch ( Exception $e ) {
58 var_dump( $e );
59 }
60 }
61
62 function rest_all_settings() {
63 return new WP_REST_Response( [
64 'success' => true,
65 'data' => $this->admin->get_all_options()
66 ], 200 );
67 }
68
69 function rest_update_option( $request ) {
70 try {
71 $params = $request->get_json_params();
72 $value = $params['options'];
73 $options = $this->core->update_options( $value );
74 $success = !!$options;
75 $message = __( $success ? 'OK' : "Could not update options.", 'ai-engine' );
76 return new WP_REST_Response([ 'success' => $success, 'message' => $message, 'options' => $options ], 200 );
77 }
78 catch ( Exception $e ) {
79 return new WP_REST_Response([ 'success' => false, 'message' => $e->getMessage() ], 500 );
80 }
81 }
82
83 function validate_updated_option( $option_name ) {
84 $option_checkbox = get_option( 'mwai_option_checkbox', false );
85 $option_text = get_option( 'mwai_option_text', 'Default' );
86 if ( $option_checkbox === '' )
87 update_option( 'mwai_option_checkbox', false );
88 if ( $option_text === '' )
89 update_option( 'mwai_option_text', 'Default' );
90 return $this->createValidationResult();
91 }
92
93 function generate_titles( $request ) {
94 try {
95 $params = $request->get_json_params();
96 $postId = intval( $params['postId'] );
97 $titles = $this->core->generate_titles( $postId );
98 $success = !!$titles;
99 $message = __( $success ? 'OK' : "Could not fetch titles.", 'ai-engine' );
100 return new WP_REST_Response([ 'success' => $success, 'message' => $message, 'titles' => $titles ], 200 );
101 }
102 catch ( Exception $e ) {
103 return new WP_REST_Response([ 'success' => false, 'message' => $e->getMessage() ], 500 );
104 }
105 }
106
107 function generate_excerpts( $request ) {
108 try {
109 $params = $request->get_json_params();
110 $postId = intval( $params['postId'] );
111 $excerpts = $this->core->generate_excerpts( $postId );
112 $success = !!$excerpts;
113 $message = __( $success ? 'OK' : "Could not fetch excerpts.", 'ai-engine' );
114 return new WP_REST_Response([ 'success' => $success, 'message' => $message, 'excerpts' => $excerpts ], 200 );
115 }
116 catch ( Exception $e ) {
117 return new WP_REST_Response([ 'success' => false, 'message' => $e->getMessage() ], 500 );
118 }
119 }
120
121 function update_post_title( $request ) {
122 try {
123 $params = $request->get_json_params();
124 $title = sanitize_text_field( $params['title'] );
125 $this->core->update_post_title( $params['postId'], $title );
126 return new WP_REST_Response([ 'success' => true, 'message' => "Title updated." ], 200 );
127 }
128 catch ( Exception $e ) {
129 return new WP_REST_Response([ 'success' => false, 'message' => $e->getMessage() ], 500 );
130 }
131 }
132
133 function update_post_excerpt( $request ) {
134 try {
135 $params = $request->get_json_params();
136 $excerpt = sanitize_text_field( $params['excerpt'] );
137 $this->core->update_post_excerpt( $params['postId'], $excerpt );
138 return new WP_REST_Response([ 'success' => true, 'message' => "Excerpt updated." ], 200 );
139 }
140 catch ( Exception $e ) {
141 return new WP_REST_Response([ 'success' => false, 'message' => $e->getMessage() ], 500 );
142 }
143 }
144
145 function completions( $request ) {
146 try {
147 $params = $request->get_json_params();
148 $res = $this->core->get_completions( $params['prompt'] );
149 $success = !!$res;
150 $message = __( $success ? 'OK' : "Could not fetch completions.", 'ai-engine' );
151 return new WP_REST_Response([ 'success' => $success, 'message' => $message,
152 'data' => $res['data'], 'usage' => $res['usage'] ], 200 );
153 }
154 catch ( Exception $e ) {
155 return new WP_REST_Response([ 'success' => false, 'message' => $e->getMessage() ], 500 );
156 }
157 }
158
159 function createValidationResult( $result = true, $message = null) {
160 $message = $message ? $message : __( 'OK', 'ai-engine' );
161 return ['result' => $result, 'message' => $message];
162 }
163 }
164