<?php

call_user_func(function() { // to prevent variable scope leak
	Route::pattern('id', '[1-9][0-9]{0,9}');
	Route::pattern('blog_username', '[a-zA-Z0-9_\-]{1,20}');

	switch (UOJConfig::$data['switch']['blog-domain-mode']) {
		case 1:
			$domain = '{blog_username}.'.UOJConfig::$data['web']['blog']['host'];
			$prefix = '';
			break;
		case 2:
			$domain = UOJConfig::$data['web']['blog']['host'];
			$prefix = '/{blog_username}';
			break;
		case 3:
			$domain = UOJConfig::$data['web']['main']['host'];
			$prefix = '/blog/{blog_username}';
			break;
	}

	Route::group([
			'domain' => UOJConfig::$data['web']['blog']['host']
		], function() {
			Route::any("/", '/blogs.php');
			Route::any("/blogs/{id}", '/blog_show.php');
			Route::any("/post/{id}", '/blog_show.php');
		}
	);
	Route::group([
			'domain' => $domain,
			'onload' => function() {
				UOJContext::setupBlog();
			}
		], function() use ($prefix) {
			Route::any("$prefix/", '/subdomain/blog/index.php');
			Route::any("$prefix/archive", '/subdomain/blog/archive.php');
			Route::any("$prefix/aboutme", '/subdomain/blog/aboutme.php');
			Route::any("$prefix/click-zan", '/click_zan.php');
			Route::any("$prefix/post/{id}", '/subdomain/blog/blog.php');
			Route::any("$prefix/slide/{id}", '/subdomain/blog/slide.php');
			Route::any("$prefix/post/(?:{id}|new)/write", '/subdomain/blog/blog_write.php');
			Route::any("$prefix/slide/(?:{id}|new)/write", '/subdomain/blog/slide_write.php');
			Route::any("$prefix/post/{id}/delete", '/subdomain/blog/blog_delete.php');
		}
	);
});