data
11 months ago
engines
11 months ago
exceptions
11 months ago
modules
11 months ago
query
11 months ago
rest
11 months ago
services
11 months ago
admin.php
11 months ago
api.php
11 months ago
core.php
11 months ago
discussion.php
11 months ago
event.php
11 months ago
init.php
11 months ago
logging.php
11 months ago
reply.php
11 months ago
rest.php
11 months ago
init.php
122 lines
| 1 | <?php |
| 2 | |
| 3 | if ( class_exists( 'MeowPro_MWAI_Core' ) && class_exists( 'Meow_MWAI_Core' ) ) { |
| 4 | function mwai_thanks_admin_notices() { |
| 5 | echo '<div class="error"><p>' . __( 'Thanks for installing the Pro version of AI Engine :) However, the free version is still enabled. Please disable or uninstall it.', 'ai-engine' ) . '</p></div>'; |
| 6 | } |
| 7 | add_action( 'admin_notices', 'mwai_thanks_admin_notices' ); |
| 8 | return; |
| 9 | } |
| 10 | |
| 11 | spl_autoload_register( function ( $class ) { |
| 12 | $file = null; |
| 13 | |
| 14 | // Handle specific namespaces first for better organization |
| 15 | if ( strpos( $class, 'Meow_MWAI_Modules' ) !== false ) { |
| 16 | $filename = str_replace( 'meow_mwai_modules_', '', strtolower( $class ) ); |
| 17 | $filename = str_replace( '_', '-', $filename ); |
| 18 | $file = MWAI_PATH . '/classes/modules/' . $filename . '.php'; |
| 19 | } |
| 20 | else if ( strpos( $class, 'Meow_MWAI_Query' ) !== false ) { |
| 21 | // Remove the prefix |
| 22 | $filename = str_replace( 'Meow_MWAI_Query_', '', $class ); |
| 23 | // Convert camelCase to kebab-case |
| 24 | $filename = strtolower( preg_replace( '/([a-z])([A-Z])/', '$1-$2', $filename ) ); |
| 25 | $file = MWAI_PATH . '/classes/query/' . $filename . '.php'; |
| 26 | } |
| 27 | else if ( strpos( $class, 'Meow_MWAI_Data' ) !== false ) { |
| 28 | // Remove the prefix |
| 29 | $filename = str_replace( 'Meow_MWAI_Data_', '', $class ); |
| 30 | // Convert camelCase to kebab-case |
| 31 | $filename = strtolower( preg_replace( '/([a-z])([A-Z])/', '$1-$2', $filename ) ); |
| 32 | $file = MWAI_PATH . '/classes/data/' . $filename . '.php'; |
| 33 | } |
| 34 | else if ( strpos( $class, 'Meow_MWAI_Engines' ) !== false ) { |
| 35 | // Remove the prefix |
| 36 | $filename = str_replace( 'Meow_MWAI_Engines_', '', $class ); |
| 37 | // Special handling for known engine names |
| 38 | if ( $filename === 'OpenAI' ) { |
| 39 | $filename = 'openai'; |
| 40 | } |
| 41 | else if ( $filename === 'OpenRouter' ) { |
| 42 | $filename = 'open-router'; |
| 43 | } |
| 44 | else if ( $filename === 'HuggingFace' ) { |
| 45 | $filename = 'hugging-face'; |
| 46 | } |
| 47 | else if ( $filename === 'ChatML' ) { |
| 48 | $filename = 'chatml'; |
| 49 | } |
| 50 | else { |
| 51 | // Convert camelCase to kebab-case for others |
| 52 | $filename = strtolower( preg_replace( '/([a-z])([A-Z])/', '$1-$2', $filename ) ); |
| 53 | } |
| 54 | $file = MWAI_PATH . '/classes/engines/' . $filename . '.php'; |
| 55 | } |
| 56 | else if ( strpos( $class, 'Meow_MWAI_Services' ) !== false ) { |
| 57 | // Remove the prefix |
| 58 | $filename = str_replace( 'Meow_MWAI_Services_', '', $class ); |
| 59 | // Convert camelCase to kebab-case |
| 60 | $filename = strtolower( preg_replace( '/([a-z])([A-Z])/', '$1-$2', $filename ) ); |
| 61 | $file = MWAI_PATH . '/classes/services/' . $filename . '.php'; |
| 62 | } |
| 63 | else if ( strpos( $class, 'Meow_MWAI_FunctionCallException' ) !== false ) { |
| 64 | $file = MWAI_PATH . '/classes/exceptions/function-call-exception.php'; |
| 65 | } |
| 66 | else if ( strpos( $class, 'Meow_MWAI_Labs' ) !== false ) { |
| 67 | $filename = str_replace( 'meow_mwai_labs_', '', strtolower( $class ) ); |
| 68 | // Convert underscores to hyphens for consistency |
| 69 | $filename = str_replace( '_', '-', $filename ); |
| 70 | $file = MWAI_PATH . '/labs/' . $filename . '.php'; |
| 71 | } |
| 72 | else if ( strpos( $class, 'Meow_MWAI' ) !== false ) { |
| 73 | $filename = str_replace( 'meow_mwai_', '', strtolower( $class ) ); |
| 74 | $filename = str_replace( '_', '-', $filename ); |
| 75 | $file = MWAI_PATH . '/classes/' . $filename . '.php'; |
| 76 | } |
| 77 | else if ( strpos( $class, 'MeowCommon_' ) !== false ) { |
| 78 | $filename = str_replace( 'meowcommon_', '', strtolower( $class ) ); |
| 79 | $filename = str_replace( '_', '-', $filename ); |
| 80 | $file = MWAI_PATH . '/common/' . $filename . '.php'; |
| 81 | } |
| 82 | else if ( strpos( $class, 'MeowCommonPro_' ) !== false ) { |
| 83 | $filename = str_replace( 'meowcommonpro_', '', strtolower( $class ) ); |
| 84 | // Special case for rest_license to maintain backward compatibility |
| 85 | if ( $filename === 'rest_license' ) { |
| 86 | $file = MWAI_PATH . '/common/premium/rest_license.php'; |
| 87 | } |
| 88 | else { |
| 89 | $filename = str_replace( '_', '-', $filename ); |
| 90 | $file = MWAI_PATH . '/common/premium/' . $filename . '.php'; |
| 91 | } |
| 92 | } |
| 93 | else if ( strpos( $class, 'MeowPro_MWAI_Addons' ) !== false ) { |
| 94 | // Remove the prefix |
| 95 | $filename = str_replace( 'MeowPro_MWAI_Addons_', '', $class ); |
| 96 | // Convert camelCase to kebab-case |
| 97 | $filename = strtolower( preg_replace( '/([a-z])([A-Z])/', '$1-$2', $filename ) ); |
| 98 | $file = MWAI_PATH . '/premium/addons/' . $filename . '.php'; |
| 99 | } |
| 100 | else if ( strpos( $class, 'MeowPro_MWAI' ) !== false ) { |
| 101 | // Remove the prefix |
| 102 | $filename = str_replace( 'MeowPro_MWAI_', '', $class ); |
| 103 | // Special handling for known class names |
| 104 | if ( $filename === 'OpenAI' ) { |
| 105 | $filename = 'openai'; |
| 106 | } |
| 107 | else { |
| 108 | // Convert camelCase to kebab-case |
| 109 | $filename = strtolower( preg_replace( '/([a-z])([A-Z])/', '$1-$2', $filename ) ); |
| 110 | } |
| 111 | $file = MWAI_PATH . '/premium/' . $filename . '.php'; |
| 112 | } |
| 113 | if ( $file && file_exists( $file ) ) { |
| 114 | require( $file ); |
| 115 | } |
| 116 | } ); |
| 117 | |
| 118 | require_once( MWAI_PATH . '/common/helpers.php' ); |
| 119 | |
| 120 | global $mwai_core; |
| 121 | $mwai_core = new Meow_MWAI_Core(); |
| 122 |