authToken and signin api
parent
4371cb0b78
commit
4c610d50c1
|
|
@ -0,0 +1,208 @@
|
||||||
|
using Microsoft.AspNetCore.Http;
|
||||||
|
using Microsoft.AspNetCore.Mvc;
|
||||||
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.Linq;
|
||||||
|
using System.Threading.Tasks;
|
||||||
|
using Newtonsoft.Json;
|
||||||
|
using Newtonsoft.Json.Linq;
|
||||||
|
using Microsoft.AspNetCore.Cors;
|
||||||
|
using Dapper;
|
||||||
|
using System.Data;
|
||||||
|
using System.Data.SqlClient;
|
||||||
|
using System.Web;
|
||||||
|
using System.Text;
|
||||||
|
using System.Net;
|
||||||
|
using System.Net.Http;
|
||||||
|
using System.Net.Http.Headers;
|
||||||
|
using Dapper.Contrib.Extensions;
|
||||||
|
|
||||||
|
using System.IO;
|
||||||
|
using System.Threading;
|
||||||
|
using System.Dynamic;
|
||||||
|
using NPOI;
|
||||||
|
using NPOI.HPSF;
|
||||||
|
using NPOI.HSSF;
|
||||||
|
using NPOI.HSSF.UserModel;
|
||||||
|
using NPOI.XSSF;
|
||||||
|
using NPOI.XSSF.UserModel;
|
||||||
|
using NPOI.POIFS;
|
||||||
|
using NPOI.Util;
|
||||||
|
using Microsoft.Extensions.Configuration;
|
||||||
|
using System.Security.Policy;
|
||||||
|
using NPOI.SS.Formula.Functions;
|
||||||
|
using static DbTableClass;
|
||||||
|
using System.Runtime.InteropServices.ObjectiveC;
|
||||||
|
using static System.Net.WebRequestMethods;
|
||||||
|
using System.Diagnostics.Eventing.Reader;
|
||||||
|
|
||||||
|
|
||||||
|
namespace Journeys_WantHome.Controllers
|
||||||
|
{
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
[Route("BackEndApi")]
|
||||||
|
public class AuthApiController : ControllerBase
|
||||||
|
{
|
||||||
|
private readonly IHttpContextAccessor _httpContextAccessor;
|
||||||
|
|
||||||
|
DbConn dbConn = new DbConn();
|
||||||
|
SqlConnection conn = new SqlConnection(GlobalClass.appsettings("ConnectionStrings:SQLConnectionString"));
|
||||||
|
SqlConnection elabConn = new SqlConnection(GlobalClass.appsettings("ConnectionStrings:ElabConnectionString"));
|
||||||
|
|
||||||
|
|
||||||
|
public AuthApiController(IHttpContextAccessor httpContextAccessor)
|
||||||
|
{
|
||||||
|
this._httpContextAccessor = httpContextAccessor;
|
||||||
|
}
|
||||||
|
|
||||||
|
[Route("signin")]
|
||||||
|
public ActionResult Signin(FormCollection obj) {
|
||||||
|
signinResult ret = new signinResult();
|
||||||
|
|
||||||
|
string input_ID = obj["id"].ToString();
|
||||||
|
string input_PWD = obj["pwd"].ToString();
|
||||||
|
string input_isRemember = obj["remember"].ToString();
|
||||||
|
|
||||||
|
string sys_ID = GlobalClass.appsettings("Admin:id");
|
||||||
|
string sys_PWD = GlobalClass.Sha256(GlobalClass.appsettings("Admin:pwd"));
|
||||||
|
|
||||||
|
//判斷是否為系統預設帳號
|
||||||
|
if (input_ID == sys_ID)
|
||||||
|
{
|
||||||
|
if (input_PWD != sys_PWD)
|
||||||
|
{
|
||||||
|
ret.ret = "no";
|
||||||
|
ret.err_code = "0001";
|
||||||
|
ret.message = "帳號或密碼錯誤!";
|
||||||
|
return Content(JsonConvert.SerializeObject(ret), "application/json;charset=utf-8");
|
||||||
|
}
|
||||||
|
|
||||||
|
token adminToken = new token();
|
||||||
|
|
||||||
|
int intexpireMin = 20;
|
||||||
|
|
||||||
|
if (input_isRemember == "Y")
|
||||||
|
{
|
||||||
|
intexpireMin = 60 * 24 * 7;
|
||||||
|
}
|
||||||
|
|
||||||
|
string token_key = GlobalClass.CreateRandomCode(24);
|
||||||
|
|
||||||
|
adminToken.user_uid = GlobalClass.appsettings("Admin:id");
|
||||||
|
adminToken.token_isremember = input_isRemember;
|
||||||
|
adminToken.token_key = token_key;
|
||||||
|
adminToken.token_createdate = DateTime.Now;
|
||||||
|
adminToken.token_expireddate = DateTime.Now.AddMinutes(intexpireMin);
|
||||||
|
|
||||||
|
conn.Insert<token>(adminToken);
|
||||||
|
|
||||||
|
CookieOptions options = new CookieOptions();
|
||||||
|
|
||||||
|
options.Secure = true;
|
||||||
|
options.Expires = DateTime.Now.AddMinutes(intexpireMin);
|
||||||
|
|
||||||
|
HttpContext.Response.Cookies.Delete("token_key");
|
||||||
|
|
||||||
|
_httpContextAccessor.HttpContext.Response.Cookies.Append("token_key", token_key, options);
|
||||||
|
|
||||||
|
ret.ret = "yes";
|
||||||
|
|
||||||
|
return Content(JsonConvert.SerializeObject(ret), "application/json;charset=utf-8");
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
//非系統帳號
|
||||||
|
user webUser = conn.QueryFirstOrDefault<user>("select * from users where user_ishidden = 'N' and user_uid = @user_uid", new { user_uid = input_ID});
|
||||||
|
|
||||||
|
if (webUser == null)
|
||||||
|
{
|
||||||
|
ret.ret = "no";
|
||||||
|
ret.err_code = "0002";
|
||||||
|
ret.message = "系統無此帳號!";
|
||||||
|
return Content(JsonConvert.SerializeObject(ret), "application/json;charset=utf-8");
|
||||||
|
}
|
||||||
|
|
||||||
|
if (webUser.user_onjob == "N") {
|
||||||
|
ret.ret = "no";
|
||||||
|
ret.err_code = "0003";
|
||||||
|
ret.message = "此帳號已經離職,無法登入";
|
||||||
|
return Content(JsonConvert.SerializeObject(ret), "application/json;charset=utf-8");
|
||||||
|
}
|
||||||
|
|
||||||
|
if (webUser.user_type == "Y")
|
||||||
|
{
|
||||||
|
if (input_PWD != webUser.user_pwd) {
|
||||||
|
ret.ret = "no";
|
||||||
|
ret.err_code = "0004";
|
||||||
|
ret.message = "密碼錯誤!";
|
||||||
|
return Content(JsonConvert.SerializeObject(ret), "application/json;charset=utf-8");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
new_userdata elabUser = elabConn.QueryFirstOrDefault<new_userdata>("select * from new_userdata where userid = @userid", new { userid = webUser.user_id});
|
||||||
|
|
||||||
|
if (input_PWD != GlobalClass.Sha256(elabUser.userpw)) {
|
||||||
|
ret.ret = "no";
|
||||||
|
ret.err_code = "0004";
|
||||||
|
ret.message = "密碼錯誤!";
|
||||||
|
return Content(JsonConvert.SerializeObject(ret), "application/json;charset=utf-8");
|
||||||
|
}
|
||||||
|
|
||||||
|
if (elabUser.onjob == 1) {
|
||||||
|
webUser.user_onjob = "N";
|
||||||
|
|
||||||
|
conn.Update(webUser);
|
||||||
|
|
||||||
|
ret.ret = "no";
|
||||||
|
ret.err_code = "0003";
|
||||||
|
ret.message = "此帳號已經離職,無法登入";
|
||||||
|
return Content(JsonConvert.SerializeObject(ret), "application/json;charset=utf-8");
|
||||||
|
}
|
||||||
|
|
||||||
|
token userToken = new token();
|
||||||
|
|
||||||
|
int intexpireMin = 20;
|
||||||
|
|
||||||
|
if (input_isRemember == "Y")
|
||||||
|
{
|
||||||
|
intexpireMin = 60 * 24 * 7;
|
||||||
|
}
|
||||||
|
|
||||||
|
string token_key = GlobalClass.CreateRandomCode(24);
|
||||||
|
|
||||||
|
userToken.user_uid = input_ID;
|
||||||
|
userToken.token_isremember = input_isRemember;
|
||||||
|
userToken.token_key = token_key;
|
||||||
|
userToken.token_createdate = DateTime.Now;
|
||||||
|
userToken.token_expireddate = DateTime.Now.AddMinutes(intexpireMin);
|
||||||
|
|
||||||
|
conn.Insert<token>(userToken);
|
||||||
|
|
||||||
|
CookieOptions options = new CookieOptions();
|
||||||
|
|
||||||
|
options.Secure = true;
|
||||||
|
options.Expires = DateTime.Now.AddMinutes(intexpireMin);
|
||||||
|
|
||||||
|
HttpContext.Response.Cookies.Delete("token_key");
|
||||||
|
|
||||||
|
_httpContextAccessor.HttpContext.Response.Cookies.Append("token_key", token_key, options);
|
||||||
|
|
||||||
|
ret.ret = "yes";
|
||||||
|
|
||||||
|
return Content(JsonConvert.SerializeObject(ret), "application/json;charset=utf-8");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return Content(JsonConvert.SerializeObject(ret), "application/json;charset=utf-8");
|
||||||
|
}
|
||||||
|
|
||||||
|
public class signinResult
|
||||||
|
{
|
||||||
|
public string ret = "no";
|
||||||
|
public string err_code = "0000";
|
||||||
|
public string message = "";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,16 @@
|
||||||
|
using Journeys_WantHome.Models;
|
||||||
|
using Microsoft.AspNetCore.Mvc;
|
||||||
|
using System.Diagnostics;
|
||||||
|
|
||||||
|
namespace Journeys_WantHome.Controllers
|
||||||
|
{
|
||||||
|
public class RootController : Controller
|
||||||
|
{
|
||||||
|
|
||||||
|
|
||||||
|
public IActionResult Login()
|
||||||
|
{
|
||||||
|
return View();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -6,4 +6,50 @@
|
||||||
<ImplicitUsings>enable</ImplicitUsings>
|
<ImplicitUsings>enable</ImplicitUsings>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
|
|
||||||
|
<ItemGroup>
|
||||||
|
<Folder Include="wwwroot\assets\vendor\fortawesome\fontawesome-free\less\" />
|
||||||
|
<Folder Include="wwwroot\assets\vendor\fortawesome\fontawesome-free\metadata\" />
|
||||||
|
<Folder Include="wwwroot\assets\vendor\fortawesome\fontawesome-free\scss\" />
|
||||||
|
<Folder Include="wwwroot\assets\vendor\ace-builds\demo\" />
|
||||||
|
<Folder Include="wwwroot\assets\vendor\ace-builds\src\" />
|
||||||
|
<Folder Include="wwwroot\assets\vendor\cookieconsent\examples\" />
|
||||||
|
<Folder Include="wwwroot\assets\vendor\cookieconsent\src\" />
|
||||||
|
<Folder Include="wwwroot\assets\vendor\flatpickr\types\" />
|
||||||
|
<Folder Include="wwwroot\assets\vendor\flatpickr\utils\" />
|
||||||
|
<Folder Include="wwwroot\assets\vendor\flot\examples\" />
|
||||||
|
<Folder Include="wwwroot\assets\vendor\html2canvas\types\build\" />
|
||||||
|
<Folder Include="wwwroot\assets\vendor\html2canvas\types\core\__mocks__\" />
|
||||||
|
<Folder Include="wwwroot\assets\vendor\html2canvas\types\core\__tests__\" />
|
||||||
|
<Folder Include="wwwroot\assets\vendor\html2canvas\types\css\layout\__mocks__\" />
|
||||||
|
<Folder Include="wwwroot\assets\vendor\html2canvas\types\css\property-descriptors\__tests__\" />
|
||||||
|
<Folder Include="wwwroot\assets\vendor\html2canvas\types\css\syntax\__tests__\" />
|
||||||
|
<Folder Include="wwwroot\assets\vendor\html2canvas\types\css\types\functions\__tests__\" />
|
||||||
|
<Folder Include="wwwroot\assets\vendor\html2canvas\types\css\types\__tests__\" />
|
||||||
|
<Folder Include="wwwroot\assets\vendor\html2canvas\types\dom\elements\" />
|
||||||
|
<Folder Include="wwwroot\assets\vendor\html2canvas\types\dom\replaced-elements\" />
|
||||||
|
<Folder Include="wwwroot\assets\vendor\html2canvas\types\dom\__mocks__\" />
|
||||||
|
<Folder Include="wwwroot\assets\vendor\html2canvas\types\render\canvas\" />
|
||||||
|
<Folder Include="wwwroot\assets\vendor\html2canvas\types\src\" />
|
||||||
|
<Folder Include="wwwroot\assets\vendor\html2canvas\types\tests\" />
|
||||||
|
<Folder Include="wwwroot\assets\vendor\html2canvas\types\__tests__\" />
|
||||||
|
<Folder Include="wwwroot\assets\vendor\jquery-sparkline\src\" />
|
||||||
|
<Folder Include="wwwroot\assets\vendor\moment\src\" />
|
||||||
|
<Folder Include="wwwroot\assets\vendor\nouislider\distribute\" />
|
||||||
|
<Folder Include="wwwroot\assets\vendor\pace-progress\docs\" />
|
||||||
|
<Folder Include="wwwroot\assets\vendor\pace-progress\tests\" />
|
||||||
|
<Folder Include="wwwroot\assets\vendor\particles.js\demo\" />
|
||||||
|
<Folder Include="wwwroot\assets\vendor\stacked-menu\scss\" />
|
||||||
|
<Folder Include="wwwroot\assets\vendor\toastr\tests\" />
|
||||||
|
</ItemGroup>
|
||||||
|
|
||||||
|
<ItemGroup>
|
||||||
|
<PackageReference Include="Dapper" Version="2.1.15" />
|
||||||
|
<PackageReference Include="Dapper.Contrib" Version="2.0.78" />
|
||||||
|
<PackageReference Include="Newtonsoft.Json" Version="13.0.3" />
|
||||||
|
<PackageReference Include="NPOI" Version="2.6.2" />
|
||||||
|
<PackageReference Include="RestSharp" Version="110.2.0" />
|
||||||
|
<PackageReference Include="System.Data.SqlClient" Version="4.8.5" />
|
||||||
|
<PackageReference Include="System.Drawing.Common" Version="7.0.0" />
|
||||||
|
</ItemGroup>
|
||||||
|
|
||||||
</Project>
|
</Project>
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,36 @@
|
||||||
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.Linq;
|
||||||
|
using System.Threading.Tasks;
|
||||||
|
using System.Data;
|
||||||
|
using System.Data.SqlClient;
|
||||||
|
|
||||||
|
public class DbConn
|
||||||
|
{
|
||||||
|
protected string _connectionString { get; set; }
|
||||||
|
protected SqlConnection _sqlConnection { get; set; }
|
||||||
|
|
||||||
|
public DbConn()
|
||||||
|
{
|
||||||
|
this._connectionString = GlobalClass.appsettings("ConnectionStrings:SQLConnectionString");
|
||||||
|
}
|
||||||
|
|
||||||
|
public SqlConnection sqlConnection()
|
||||||
|
{
|
||||||
|
this._sqlConnection = new SqlConnection(this._connectionString);
|
||||||
|
if (this._sqlConnection.State != ConnectionState.Open)
|
||||||
|
{
|
||||||
|
this._sqlConnection.Open();
|
||||||
|
}
|
||||||
|
return this._sqlConnection;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void closeConn()
|
||||||
|
{
|
||||||
|
if (this._sqlConnection.State != ConnectionState.Closed)
|
||||||
|
{
|
||||||
|
this._sqlConnection.Close();
|
||||||
|
this._sqlConnection.Dispose();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,92 @@
|
||||||
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using Dapper.Contrib.Extensions;
|
||||||
|
using Microsoft.AspNetCore.Http;
|
||||||
|
using Microsoft.AspNetCore.Mvc;
|
||||||
|
using Newtonsoft.Json;
|
||||||
|
using Newtonsoft.Json.Linq;
|
||||||
|
|
||||||
|
public class DbTableClass
|
||||||
|
{
|
||||||
|
[Table("token")]
|
||||||
|
public class token
|
||||||
|
{
|
||||||
|
[JsonIgnore]
|
||||||
|
[Key]
|
||||||
|
public int token_sn { get; set; }
|
||||||
|
|
||||||
|
public string token_key { get; set; } = "";
|
||||||
|
|
||||||
|
public string user_uid { get; set; } = "";
|
||||||
|
|
||||||
|
public string token_isremember { get; set; } = "N";
|
||||||
|
|
||||||
|
public DateTime token_createdate { get; set; } = DateTime.Now;
|
||||||
|
|
||||||
|
public DateTime token_expireddate { get; set; } = DateTime.Now.AddMinutes(20);
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
[Table("users")]
|
||||||
|
public class user
|
||||||
|
{
|
||||||
|
[JsonIgnore]
|
||||||
|
[Key]
|
||||||
|
public int user_sn { get; set; }
|
||||||
|
|
||||||
|
public string user_uid { get; set; } = "";
|
||||||
|
|
||||||
|
public string user_id { get; set; } = "";
|
||||||
|
|
||||||
|
public string user_name { get; set; } = "";
|
||||||
|
|
||||||
|
public string user_email { get; set; } = "";
|
||||||
|
|
||||||
|
public string user_onjob { get; set; } = "N";
|
||||||
|
|
||||||
|
public string user_type { get; set; } = "N";
|
||||||
|
|
||||||
|
public string user_pwd { get; set; } = "";
|
||||||
|
|
||||||
|
public string user_perm { get; set; } = "user";
|
||||||
|
|
||||||
|
public string user_pic { get; set; } = "";
|
||||||
|
|
||||||
|
public string user_ishidden { get; set; } = "N";
|
||||||
|
|
||||||
|
public DateTime user_createdate { get; set; } = DateTime.Now;
|
||||||
|
|
||||||
|
public string user_lastlogintime { get; set; } = DateTime.Now;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
[Table("new_userdata")]
|
||||||
|
public class new_userdata
|
||||||
|
{
|
||||||
|
[JsonIgnore]
|
||||||
|
[Key]
|
||||||
|
public int usersn { get; set; }
|
||||||
|
|
||||||
|
public string userid { get; set; } = "";
|
||||||
|
|
||||||
|
public string userpw { get; set; } = "";
|
||||||
|
|
||||||
|
public string username { get; set; } = "";
|
||||||
|
|
||||||
|
public int? maincategoryid { get; set; } = 1;
|
||||||
|
|
||||||
|
public int? subcategoryid { get; set; } = 1;
|
||||||
|
|
||||||
|
public int? grade { get; set; } = 0;
|
||||||
|
|
||||||
|
public string mail { get; set; } = "";
|
||||||
|
|
||||||
|
public string mailto { get; set; } = "";
|
||||||
|
|
||||||
|
public int? onjob { get; set; } = 0;
|
||||||
|
|
||||||
|
public int? permission { get; set; } = 0;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,232 @@
|
||||||
|
using System.Security.Cryptography;
|
||||||
|
using System.Text;
|
||||||
|
using System.Text.RegularExpressions;
|
||||||
|
using System.Drawing;
|
||||||
|
using System.Drawing.Imaging;
|
||||||
|
using System.Drawing.Drawing2D;
|
||||||
|
|
||||||
|
public static class GlobalClass
|
||||||
|
{
|
||||||
|
public static IServiceProvider ServiceProvider;
|
||||||
|
public static bool isURL(string url)
|
||||||
|
{
|
||||||
|
return Uri.IsWellFormedUriString(url, UriKind.Absolute);
|
||||||
|
}
|
||||||
|
|
||||||
|
public static string GetIP(this HttpContext context)
|
||||||
|
{
|
||||||
|
|
||||||
|
var ip = context.Request.Headers["X-Forwarded-For"].FirstOrDefault();
|
||||||
|
if (string.IsNullOrEmpty(ip))
|
||||||
|
{
|
||||||
|
ip = context.Connection.RemoteIpAddress.ToString();
|
||||||
|
}
|
||||||
|
return ip;
|
||||||
|
}
|
||||||
|
|
||||||
|
public static string CreateRandomCode(int Number)
|
||||||
|
{
|
||||||
|
string allChar = "0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z";
|
||||||
|
string[] allCharArray = allChar.Split(',');
|
||||||
|
string randomCode = "";
|
||||||
|
|
||||||
|
Random rand = new Random(Guid.NewGuid().GetHashCode());
|
||||||
|
for (int i = 0; i <= Number - 1; i++)
|
||||||
|
{
|
||||||
|
int t = rand.Next(allCharArray.Length);
|
||||||
|
randomCode += allCharArray[t];
|
||||||
|
}
|
||||||
|
return randomCode;
|
||||||
|
}
|
||||||
|
|
||||||
|
public static string CreateUniRandomCode(int Number)
|
||||||
|
{
|
||||||
|
string allChar = "2,3,4,5,6,7,8,9,A,B,C,D,E,F,G,H,J,K,M,N,P,Q,R,S,U,V,W,X,Y,Z";
|
||||||
|
string[] allCharArray = allChar.Split(',');
|
||||||
|
string randomCode = "";
|
||||||
|
|
||||||
|
Random rand = new Random(Guid.NewGuid().GetHashCode());
|
||||||
|
for (int i = 0; i <= Number - 1; i++)
|
||||||
|
{
|
||||||
|
int t = rand.Next(allCharArray.Length);
|
||||||
|
randomCode += allCharArray[t];
|
||||||
|
}
|
||||||
|
return randomCode;
|
||||||
|
}
|
||||||
|
|
||||||
|
public static string ToMD5(this string str)
|
||||||
|
{
|
||||||
|
using (var cryptoMD5 = System.Security.Cryptography.MD5.Create())
|
||||||
|
{
|
||||||
|
//將字串編碼成 UTF8 位元組陣列
|
||||||
|
var bytes = Encoding.UTF8.GetBytes(str);
|
||||||
|
|
||||||
|
//取得雜湊值位元組陣列
|
||||||
|
var hash = cryptoMD5.ComputeHash(bytes);
|
||||||
|
|
||||||
|
//取得 MD5
|
||||||
|
var md5 = BitConverter.ToString(hash)
|
||||||
|
.Replace("-", String.Empty)
|
||||||
|
.ToLower();
|
||||||
|
|
||||||
|
return md5;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public static string Sha256(this string input)
|
||||||
|
{
|
||||||
|
System.Security.Cryptography.SHA256CryptoServiceProvider sha256 = new SHA256CryptoServiceProvider();
|
||||||
|
Byte[] ByteString = Encoding.ASCII.GetBytes(input);
|
||||||
|
ByteString = sha256.ComputeHash(ByteString);
|
||||||
|
string returnString = "";
|
||||||
|
foreach (Byte bt in ByteString)
|
||||||
|
{
|
||||||
|
returnString += bt.ToString("x2");
|
||||||
|
}
|
||||||
|
return returnString.ToLower();
|
||||||
|
}
|
||||||
|
/// <summary>
|
||||||
|
/// Creates a SHA256 hash of the specified input.
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="input">The input.</param>
|
||||||
|
/// <returns>A hash.</returns>
|
||||||
|
public static byte[] Sha256(this byte[] input)
|
||||||
|
{
|
||||||
|
if (input == null)
|
||||||
|
{
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
using (var sha = SHA256.Create())
|
||||||
|
{
|
||||||
|
return sha.ComputeHash(input);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public static bool isEmail(string email)
|
||||||
|
{
|
||||||
|
//Email檢查格式
|
||||||
|
System.Text.RegularExpressions.Regex EmailExpression = new Regex(@"^([a-zA-Z0-9_\-\.]+)@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.)|(([a-zA-Z0-9\-]+\.)+))([a-zA-Z]{2,4}|[0-9]{1,3})(\]?)$", RegexOptions.Compiled | RegexOptions.Singleline);
|
||||||
|
try
|
||||||
|
{
|
||||||
|
if (string.IsNullOrEmpty(email))
|
||||||
|
{
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
return EmailExpression.IsMatch(email);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
catch (Exception ex)
|
||||||
|
{
|
||||||
|
//log.Error(ex.Message);
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public static string appsettings(string key)
|
||||||
|
{
|
||||||
|
var builder = new ConfigurationBuilder()
|
||||||
|
.SetBasePath(Directory.GetCurrentDirectory())
|
||||||
|
.AddJsonFile("appsettings.json");
|
||||||
|
var config = builder.Build();
|
||||||
|
return config[key];
|
||||||
|
}
|
||||||
|
|
||||||
|
public static Image embedImage(Image watermark, Image targetImg, int x, int y)
|
||||||
|
{
|
||||||
|
Image outImg;
|
||||||
|
|
||||||
|
using (Graphics g = Graphics.FromImage(targetImg))
|
||||||
|
{
|
||||||
|
g.DrawImage(watermark, new Rectangle(x, y, watermark.Width, watermark.Height));
|
||||||
|
outImg = (Image)targetImg.Clone();
|
||||||
|
}
|
||||||
|
|
||||||
|
return outImg;
|
||||||
|
}
|
||||||
|
|
||||||
|
public static Image resizeImage(Image image, int width, int height)
|
||||||
|
{
|
||||||
|
var destinationRect = new Rectangle(0, 0, width, height);
|
||||||
|
var destinationImage = new Bitmap(width, height);
|
||||||
|
|
||||||
|
destinationImage.SetResolution(image.HorizontalResolution, image.VerticalResolution);
|
||||||
|
|
||||||
|
using (var graphics = Graphics.FromImage(destinationImage))
|
||||||
|
{
|
||||||
|
graphics.CompositingMode = CompositingMode.SourceCopy;
|
||||||
|
graphics.CompositingQuality = CompositingQuality.HighQuality;
|
||||||
|
|
||||||
|
using (var wrapMode = new ImageAttributes())
|
||||||
|
{
|
||||||
|
wrapMode.SetWrapMode(WrapMode.TileFlipXY);
|
||||||
|
graphics.DrawImage(image, destinationRect, 0, 0, image.Width, image.Height, GraphicsUnit.Pixel, wrapMode);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return (Image)destinationImage;
|
||||||
|
}
|
||||||
|
|
||||||
|
public static void sendLineMessage(string uid, string messageJson)
|
||||||
|
{
|
||||||
|
string channelAccessToken = GlobalClass.appsettings("Line:access_token");
|
||||||
|
|
||||||
|
var bot = new isRock.LineBot.Bot(channelAccessToken);
|
||||||
|
|
||||||
|
bot.PushMessageWithJSON(uid, messageJson);
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// base 64字串格式的圖片轉成Image物件
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="base64String"></param>
|
||||||
|
/// <returns></returns>
|
||||||
|
public static Image Base64StringToImage(string base64String)
|
||||||
|
{
|
||||||
|
// Convert base 64 string to byte[]
|
||||||
|
byte[] Buffer = Convert.FromBase64String(base64String);
|
||||||
|
|
||||||
|
byte[] data = null;
|
||||||
|
Image oImage = null;
|
||||||
|
MemoryStream oMemoryStream = null;
|
||||||
|
Bitmap oBitmap = null;
|
||||||
|
//建立副本
|
||||||
|
data = (byte[])Buffer.Clone();
|
||||||
|
try
|
||||||
|
{
|
||||||
|
oMemoryStream = new MemoryStream(data);
|
||||||
|
//設定資料流位置
|
||||||
|
oMemoryStream.Position = 0;
|
||||||
|
oImage = System.Drawing.Image.FromStream(oMemoryStream);
|
||||||
|
//建立副本
|
||||||
|
oBitmap = new Bitmap(oImage);
|
||||||
|
}
|
||||||
|
catch
|
||||||
|
{
|
||||||
|
throw;
|
||||||
|
}
|
||||||
|
finally
|
||||||
|
{
|
||||||
|
oMemoryStream.Close();
|
||||||
|
oMemoryStream.Dispose();
|
||||||
|
oMemoryStream = null;
|
||||||
|
}
|
||||||
|
//return oImage;
|
||||||
|
return oBitmap;
|
||||||
|
}
|
||||||
|
|
||||||
|
public static string ImageToBase64(Image image, System.Drawing.Imaging.ImageFormat format)
|
||||||
|
{
|
||||||
|
using (MemoryStream ms = new MemoryStream())
|
||||||
|
{
|
||||||
|
// Convert Image to byte[]
|
||||||
|
image.Save(ms, format);
|
||||||
|
byte[] imageBytes = ms.ToArray();
|
||||||
|
|
||||||
|
// Convert byte[] to base 64 string
|
||||||
|
string base64String = Convert.ToBase64String(imageBytes);
|
||||||
|
return base64String;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,140 @@
|
||||||
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.Linq;
|
||||||
|
using System.Threading.Tasks;
|
||||||
|
using Microsoft.AspNetCore.Http;
|
||||||
|
using Microsoft.AspNetCore.Mvc;
|
||||||
|
using Newtonsoft.Json;
|
||||||
|
using Newtonsoft.Json.Linq;
|
||||||
|
using Microsoft.AspNetCore.Cors;
|
||||||
|
using Dapper;
|
||||||
|
using System.Data;
|
||||||
|
using System.Data.SqlClient;
|
||||||
|
using static DbTableClass;
|
||||||
|
using Dapper.Contrib.Extensions;
|
||||||
|
using System.Reflection.Metadata.Ecma335;
|
||||||
|
|
||||||
|
public class authToken
|
||||||
|
{
|
||||||
|
private readonly IHttpContextAccessor _httpContextAccessor;
|
||||||
|
public string user_uid { get; set; }
|
||||||
|
public string user_id { get; set; }
|
||||||
|
public string user_name { get; set; }
|
||||||
|
public string user_perm { get; set; }
|
||||||
|
public Boolean user_isLogin { get; set; }
|
||||||
|
public string error_msg { get; set; }
|
||||||
|
public HttpRequest myRequest { get; set; }
|
||||||
|
|
||||||
|
public authToken(IHttpContextAccessor httpContextAccessor)
|
||||||
|
{
|
||||||
|
this._httpContextAccessor = httpContextAccessor;
|
||||||
|
|
||||||
|
SqlConnection conn = new SqlConnection(GlobalClass.appsettings("ConnectionStrings:SQLConnectionString"));
|
||||||
|
DbConn dbConn = new DbConn();
|
||||||
|
dbConn.sqlConnection().Execute("delete token where token_expireddate < @now", new { now = DateTime.Now });
|
||||||
|
dbConn.closeConn();
|
||||||
|
|
||||||
|
try
|
||||||
|
{
|
||||||
|
if (_httpContextAccessor.HttpContext.Request.Cookies["token_key"] == null)
|
||||||
|
{
|
||||||
|
user_isLogin = false;
|
||||||
|
error_msg = "no this cookie";
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
string token_key = _httpContextAccessor.HttpContext.Request.Cookies["token_key"];
|
||||||
|
|
||||||
|
var tokenData = dbConn.sqlConnection().Query("select * from token where token_key = @token_key", new { token_key = token_key });
|
||||||
|
|
||||||
|
CookieOptions cookieOptions = new CookieOptions();
|
||||||
|
|
||||||
|
if (tokenData.Count() == 0)
|
||||||
|
{
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
user_isLogin = false;
|
||||||
|
error_msg = "not this account";
|
||||||
|
dbConn.closeConn();
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
var tokenItem = tokenData.ElementAt(0);
|
||||||
|
|
||||||
|
|
||||||
|
if (tokenItem.user_uid == GlobalClass.appsettings("Admin:uid") && tokenItem.user_id == GlobalClass.appsettings("Admin:id"))
|
||||||
|
{
|
||||||
|
user_uid = tokenItem.user_uid;
|
||||||
|
user_id = tokenItem.user_id;
|
||||||
|
user_name = "系統管理員";
|
||||||
|
user_perm = GlobalClass.appsettings("Admin:perm");
|
||||||
|
user_isLogin = true;
|
||||||
|
|
||||||
|
int intMin = 20;
|
||||||
|
|
||||||
|
if (tokenItem.token_isremember == "Y")
|
||||||
|
{
|
||||||
|
intMin = 60 * 24 * 7;
|
||||||
|
}
|
||||||
|
|
||||||
|
dbConn.sqlConnection().Execute("update token set token_expireddate = @token_expireddate " +
|
||||||
|
"where token_key = @token_key", new { token_expireddate = DateTime.Now.AddMinutes(intMin), token_key = token_key });
|
||||||
|
|
||||||
|
dbConn.closeConn();
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
|
||||||
|
user loginUser = conn.QueryFirstOrDefault<user>("select * from users where user_uid = @user_uid and user_id = @user_id", new { user_uid = tokenItem.user_uid , user_id = tokenItem.user_id });
|
||||||
|
|
||||||
|
if (loginUser == null)
|
||||||
|
{
|
||||||
|
dbConn.sqlConnection().Execute("delete token where token_key = @token_key", new { token_key = token_key });
|
||||||
|
|
||||||
|
user_isLogin = false;
|
||||||
|
error_msg = "找不到此token用戶資料";
|
||||||
|
dbConn.closeConn();
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (loginUser.user_onjob == "N") {
|
||||||
|
dbConn.sqlConnection().Execute("delete token where token_key = @token_key", new { token_key = token_key });
|
||||||
|
|
||||||
|
user_isLogin = false;
|
||||||
|
error_msg = "此token用戶已經離職";
|
||||||
|
dbConn.closeConn();
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
user_uid = tokenItem.user_uid;
|
||||||
|
user_id = tokenItem.user_id;
|
||||||
|
user_name = loginUser.user_name;
|
||||||
|
user_perm = loginUser.user_perm;
|
||||||
|
user_isLogin = true;
|
||||||
|
|
||||||
|
int intMin = 20;
|
||||||
|
|
||||||
|
if (tokenItem.token_isremember == "Y")
|
||||||
|
{
|
||||||
|
intMin = 60 * 24 * 7;
|
||||||
|
}
|
||||||
|
|
||||||
|
dbConn.sqlConnection().Execute("update token set token_expireddate = @token_expireddate " +
|
||||||
|
"where token_key = @token_key", new { token_expireddate = DateTime.Now.AddMinutes(intMin), token_key = token_key });
|
||||||
|
|
||||||
|
dbConn.closeConn();
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
catch (Exception ex)
|
||||||
|
{
|
||||||
|
conn.Close();
|
||||||
|
dbConn.closeConn();
|
||||||
|
user_isLogin = false;
|
||||||
|
error_msg = ex.Message;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -1,7 +1,10 @@
|
||||||
|
using Microsoft.Extensions.DependencyInjection.Extensions;
|
||||||
|
|
||||||
var builder = WebApplication.CreateBuilder(args);
|
var builder = WebApplication.CreateBuilder(args);
|
||||||
|
|
||||||
// Add services to the container.
|
// Add services to the container.
|
||||||
builder.Services.AddControllersWithViews();
|
builder.Services.AddControllersWithViews();
|
||||||
|
builder.Services.TryAddSingleton<IHttpContextAccessor, HttpContextAccessor>();
|
||||||
|
|
||||||
var app = builder.Build();
|
var app = builder.Build();
|
||||||
|
|
||||||
|
|
@ -15,6 +18,7 @@ if (!app.Environment.IsDevelopment())
|
||||||
|
|
||||||
app.UseHttpsRedirection();
|
app.UseHttpsRedirection();
|
||||||
app.UseStaticFiles();
|
app.UseStaticFiles();
|
||||||
|
app.UseCors("AllowAnyOrigins");
|
||||||
|
|
||||||
app.UseRouting();
|
app.UseRouting();
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,117 @@
|
||||||
|
@*
|
||||||
|
For more information on enabling MVC for empty projects, visit https://go.microsoft.com/fwlink/?LinkID=397860
|
||||||
|
*@
|
||||||
|
|
||||||
|
<!DOCTYPE html>
|
||||||
|
<html lang="en">
|
||||||
|
<head>
|
||||||
|
<!-- Required meta tags -->
|
||||||
|
<meta charset="utf-8">
|
||||||
|
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no"><!-- End Required meta tags -->
|
||||||
|
<!-- Begin SEO tag -->
|
||||||
|
<title> 網紅資訊管理系統 </title>
|
||||||
|
<meta property="og:title" content="Sign In">
|
||||||
|
<meta name="author" content="Beni Arisandi">
|
||||||
|
<meta property="og:locale" content="en_US">
|
||||||
|
<meta name="description" content="Responsive admin theme build on top of Bootstrap 4">
|
||||||
|
<meta property="og:description" content="Responsive admin theme build on top of Bootstrap 4">
|
||||||
|
<link rel="canonical" href="https://uselooper.com">
|
||||||
|
<meta property="og:url" content="https://uselooper.com">
|
||||||
|
<meta property="og:site_name" content="Looper - Bootstrap 4 Admin Theme">
|
||||||
|
<!-- End SEO tag -->
|
||||||
|
<!-- Favicons -->
|
||||||
|
<link rel="apple-touch-icon" sizes="144x144" href="~/assets/apple-touch-icon.png">
|
||||||
|
<link rel="shortcut icon" href="assets/favicon.ico">
|
||||||
|
<meta name="theme-color" content="#3063A0"><!-- Google font -->
|
||||||
|
<link href="https://fonts.googleapis.com/css?family=Fira+Sans:400,500,600" rel="stylesheet"><!-- End Google font -->
|
||||||
|
<!-- BEGIN PLUGINS STYLES -->
|
||||||
|
<link rel="stylesheet" href="~/assets/vendor/fortawesome/fontawesome-free/css/all.min.css"><!-- END PLUGINS STYLES -->
|
||||||
|
<!-- BEGIN THEME STYLES -->
|
||||||
|
<link rel="stylesheet" href="~/assets/stylesheets/theme.min.css" data-skin="default">
|
||||||
|
<link rel="stylesheet" href="~/assets/stylesheets/theme-dark.min.css" data-skin="dark">
|
||||||
|
<link rel="stylesheet" href="~/assets/stylesheets/custom.css">
|
||||||
|
<script>
|
||||||
|
var skin = localStorage.getItem('skin') || 'default';
|
||||||
|
var isCompact = JSON.parse(localStorage.getItem('hasCompactMenu'));
|
||||||
|
var disabledSkinStylesheet = document.querySelector('link[data-skin]:not([data-skin="' + skin + '"])');
|
||||||
|
// Disable unused skin immediately
|
||||||
|
disabledSkinStylesheet.setAttribute('rel', '');
|
||||||
|
disabledSkinStylesheet.setAttribute('disabled', true);
|
||||||
|
// add flag class to html immediately
|
||||||
|
if (isCompact == true) document.querySelector('html').classList.add('preparing-compact-menu');
|
||||||
|
</script><!-- END THEME STYLES -->
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<!--[if lt IE 10]>
|
||||||
|
<div class="page-message" role="alert">You are using an <strong>outdated</strong> browser. Please <a class="alert-link" href="http://browsehappy.com/">upgrade your browser</a> to improve your experience and security.</div>
|
||||||
|
<![endif]-->
|
||||||
|
<!-- .auth -->
|
||||||
|
<main class="auth">
|
||||||
|
<header id="auth-header" class="auth-header" style="background-image: url(/assets/images/illustration/img-1.png);">
|
||||||
|
<h1>
|
||||||
|
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" height="64" viewbox="0 0 351 100">
|
||||||
|
<defs>
|
||||||
|
<path id="a" d="M156.538 45.644v1.04a6.347 6.347 0 0 1-1.847 3.98L127.708 77.67a6.338 6.338 0 0 1-3.862 1.839h-1.272a6.34 6.34 0 0 1-3.862-1.839L91.728 50.664a6.353 6.353 0 0 1 0-9l9.11-9.117-2.136-2.138a3.171 3.171 0 0 0-4.498 0L80.711 43.913a3.177 3.177 0 0 0-.043 4.453l-.002.003.048.047 24.733 24.754-4.497 4.5a6.339 6.339 0 0 1-3.863 1.84h-1.27a6.337 6.337 0 0 1-3.863-1.84L64.971 50.665a6.353 6.353 0 0 1 0-9l26.983-27.008a6.336 6.336 0 0 1 4.498-1.869c1.626 0 3.252.622 4.498 1.87l26.986 27.006a6.353 6.353 0 0 1 0 9l-9.11 9.117 2.136 2.138a3.171 3.171 0 0 0 4.498 0l13.49-13.504a3.177 3.177 0 0 0 .046-4.453l.002-.002-.047-.048-24.737-24.754 4.498-4.5a6.344 6.344 0 0 1 8.996 0l26.983 27.006a6.347 6.347 0 0 1 1.847 3.98zm-46.707-4.095l-2.362 2.364a3.178 3.178 0 0 0 0 4.501l2.362 2.364 2.361-2.364a3.178 3.178 0 0 0 0-4.501l-2.361-2.364z"></path>
|
||||||
|
</defs>
|
||||||
|
<g fill="none" fill-rule="evenodd">
|
||||||
|
<path fill="currentColor" fill-rule="nonzero" d="M39.252 80.385c-13.817 0-21.06-8.915-21.06-22.955V13.862H.81V.936h33.762V58.1c0 6.797 4.346 9.026 9.026 9.026 2.563 0 5.237-.446 8.58-1.783l3.677 12.034c-5.794 1.894-9.694 3.009-16.603 3.009zM164.213 99.55V23.78h13.372l1.225 5.571h.335c4.457-4.011 10.585-6.908 16.491-6.908 13.817 0 22.174 11.031 22.174 28.08 0 18.943-11.588 29.863-23.957 29.863-4.903 0-9.694-2.117-13.594-6.017h-.446l.78 9.025V99.55h-16.38zm25.852-32.537c6.128 0 10.92-4.903 10.92-16.268 0-9.917-3.232-14.932-10.14-14.932-3.566 0-6.797 1.56-10.252 5.126v22.397c3.12 2.674 6.686 3.677 9.472 3.677zm69.643 13.372c-17.272 0-30.643-10.586-30.643-28.972 0-18.163 13.928-28.971 28.748-28.971 17.049 0 26.075 11.477 26.075 26.52 0 3.008-.558 6.017-.78 7.354h-37.663c1.56 8.023 7.465 11.589 16.491 11.589 5.014 0 9.36-1.337 14.263-3.9l5.46 9.917c-6.351 4.011-14.597 6.463-21.951 6.463zm-1.338-45.463c-6.462 0-11.031 3.454-12.702 10.363h23.622c-.78-6.797-4.568-10.363-10.92-10.363zm44.238 44.126V23.779h13.371l1.337 12.034h.334c5.46-9.025 13.595-13.371 22.398-13.371 4.902 0 7.465.78 10.697 2.228l-3.343 13.706c-3.454-1.003-5.683-1.56-9.806-1.56-6.797 0-13.928 3.566-18.608 13.483v28.749h-16.38z"></path>
|
||||||
|
<use class="fill-warning" xlink:href="#a"></use>
|
||||||
|
</g>
|
||||||
|
</svg> <span class="sr-only">Sign In</span>
|
||||||
|
</h1>
|
||||||
|
<p>
|
||||||
|
</p>
|
||||||
|
</header><!-- form -->
|
||||||
|
<form class="auth-form">
|
||||||
|
<!-- .form-group -->
|
||||||
|
<div class="form-group">
|
||||||
|
<div class="form-label-group">
|
||||||
|
<input type="text" id="inputUser" class="form-control" placeholder="帳號" autofocus=""> <label for="inputUser">帳號</label>
|
||||||
|
</div>
|
||||||
|
</div><!-- /.form-group -->
|
||||||
|
<!-- .form-group -->
|
||||||
|
<div class="form-group">
|
||||||
|
<div class="form-label-group">
|
||||||
|
<input type="password" id="inputPassword" class="form-control" placeholder="密碼"> <label for="inputPassword">密碼</label>
|
||||||
|
</div>
|
||||||
|
</div><!-- /.form-group -->
|
||||||
|
<!-- .form-group -->
|
||||||
|
<div class="form-group">
|
||||||
|
<button class="btn btn-lg btn-primary btn-block" type="submit">登入</button>
|
||||||
|
</div><!-- /.form-group -->
|
||||||
|
<!-- .form-group -->
|
||||||
|
<div class="form-group text-center">
|
||||||
|
<div class="custom-control custom-control-inline custom-checkbox">
|
||||||
|
<input type="checkbox" class="custom-control-input" id="remember-me"> <label class="custom-control-label" for="remember-me">Keep me sign in</label>
|
||||||
|
</div>
|
||||||
|
</div><!-- /.form-group -->
|
||||||
|
<!-- recovery links -->
|
||||||
|
<div class="text-center pt-3" style="visibility:hidden;">
|
||||||
|
<a href="auth-recovery-username.html" class="link">Forgot Username?</a> <span class="mx-2">·</span> <a href="auth-recovery-password.html" class="link">Forgot Password?</a>
|
||||||
|
</div><!-- /recovery links -->
|
||||||
|
</form><!-- /.auth-form -->
|
||||||
|
<!-- copyright -->
|
||||||
|
<footer class="auth-footer">
|
||||||
|
© 2023 All Rights Reserved. <a href="#">Privacy</a> and <a href="#">Terms</a>
|
||||||
|
</footer>
|
||||||
|
</main><!-- /.auth -->
|
||||||
|
<!-- BEGIN BASE JS -->
|
||||||
|
<script src="~/assets/vendor/jquery/jquery.min.js"></script>
|
||||||
|
<script src="~/assets/vendor/popper.js/umd/popper.min.js"></script>
|
||||||
|
<script src="~/assets/vendor/bootstrap/js/bootstrap.min.js"></script> <!-- END BASE JS -->
|
||||||
|
<!-- BEGIN PLUGINS JS -->
|
||||||
|
<script src="~/assets/vendor/particles.js/particles.js"></script>
|
||||||
|
<script>
|
||||||
|
/**
|
||||||
|
* Keep in mind that your scripts may not always be executed after the theme is completely ready,
|
||||||
|
* you might need to observe the `theme:load` event to make sure your scripts are executed after the theme is ready.
|
||||||
|
*/
|
||||||
|
$(document).on('theme:init', () => {
|
||||||
|
|
||||||
|
particlesJS.load('auth-header', '/assets/javascript/pages/particles.json');
|
||||||
|
})
|
||||||
|
</script> <!-- END PLUGINS JS -->
|
||||||
|
<!-- BEGIN THEME JS -->
|
||||||
|
<script src="~/assets/javascript/theme.js"></script> <!-- END THEME JS -->
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
|
|
@ -1,3 +1,3 @@
|
||||||
@{
|
@{
|
||||||
Layout = "_Layout";
|
//Layout = "_Layout";
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -5,5 +5,15 @@
|
||||||
"Microsoft.AspNetCore": "Warning"
|
"Microsoft.AspNetCore": "Warning"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"AllowedHosts": "*"
|
"AllowedHosts": "*",
|
||||||
|
"ConnectionStrings": {
|
||||||
|
"SQLConnectionString": "Data Source=mssql.bremen.com.tw;Initial Catalog=journeys_wanthome;User ID=journeys_wanthome;Password=2icR52n@9;Max Pool Size=100;",
|
||||||
|
"ElabConnectionString": "Data Source=mssql.bremen.com.tw;Initial Catalog=elab;User ID=elab;Password=2#2k9Vfg"
|
||||||
|
},
|
||||||
|
"Admin": {
|
||||||
|
"uid": "system",
|
||||||
|
"id": "admin",
|
||||||
|
"pwd": "?Bremen!",
|
||||||
|
"perm": "system"
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Binary file not shown.
Binary file not shown.
|
After Width: | Height: | Size: 8.3 KiB |
|
|
@ -0,0 +1,517 @@
|
||||||
|
{
|
||||||
|
"data": [
|
||||||
|
{
|
||||||
|
"id": "1",
|
||||||
|
"name": "Tiger Nixon",
|
||||||
|
"position": "System Architect",
|
||||||
|
"salary": "$320,800",
|
||||||
|
"start_date": "2011/04/25",
|
||||||
|
"office": "Edinburgh",
|
||||||
|
"extn": "5421"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "2",
|
||||||
|
"name": "Garrett Winters",
|
||||||
|
"position": "Accountant",
|
||||||
|
"salary": "$170,750",
|
||||||
|
"start_date": "2011/07/25",
|
||||||
|
"office": "Tokyo",
|
||||||
|
"extn": "8422"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "3",
|
||||||
|
"name": "Ashton Cox",
|
||||||
|
"position": "Junior Technical Author",
|
||||||
|
"salary": "$86,000",
|
||||||
|
"start_date": "2009/01/12",
|
||||||
|
"office": "San Francisco",
|
||||||
|
"extn": "1562"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "4",
|
||||||
|
"name": "Cedric Kelly",
|
||||||
|
"position": "Senior Javascript Developer",
|
||||||
|
"salary": "$433,060",
|
||||||
|
"start_date": "2012/03/29",
|
||||||
|
"office": "Edinburgh",
|
||||||
|
"extn": "6224"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "5",
|
||||||
|
"name": "Airi Satou",
|
||||||
|
"position": "Accountant",
|
||||||
|
"salary": "$162,700",
|
||||||
|
"start_date": "2008/11/28",
|
||||||
|
"office": "Tokyo",
|
||||||
|
"extn": "5407"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "6",
|
||||||
|
"name": "Brielle Williamson",
|
||||||
|
"position": "Integration Specialist",
|
||||||
|
"salary": "$372,000",
|
||||||
|
"start_date": "2012/12/02",
|
||||||
|
"office": "New York",
|
||||||
|
"extn": "4804"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "7",
|
||||||
|
"name": "Herrod Chandler",
|
||||||
|
"position": "Sales Assistant",
|
||||||
|
"salary": "$137,500",
|
||||||
|
"start_date": "2012/08/06",
|
||||||
|
"office": "San Francisco",
|
||||||
|
"extn": "9608"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "8",
|
||||||
|
"name": "Rhona Davidson",
|
||||||
|
"position": "Integration Specialist",
|
||||||
|
"salary": "$327,900",
|
||||||
|
"start_date": "2010/10/14",
|
||||||
|
"office": "Tokyo",
|
||||||
|
"extn": "6200"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "9",
|
||||||
|
"name": "Colleen Hurst",
|
||||||
|
"position": "Javascript Developer",
|
||||||
|
"salary": "$205,500",
|
||||||
|
"start_date": "2009/09/15",
|
||||||
|
"office": "San Francisco",
|
||||||
|
"extn": "2360"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "10",
|
||||||
|
"name": "Sonya Frost",
|
||||||
|
"position": "Software Engineer",
|
||||||
|
"salary": "$103,600",
|
||||||
|
"start_date": "2008/12/13",
|
||||||
|
"office": "Edinburgh",
|
||||||
|
"extn": "1667"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "11",
|
||||||
|
"name": "Jena Gaines",
|
||||||
|
"position": "Office Manager",
|
||||||
|
"salary": "$90,560",
|
||||||
|
"start_date": "2008/12/19",
|
||||||
|
"office": "London",
|
||||||
|
"extn": "3814"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "12",
|
||||||
|
"name": "Quinn Flynn",
|
||||||
|
"position": "Support Lead",
|
||||||
|
"salary": "$342,000",
|
||||||
|
"start_date": "2013/03/03",
|
||||||
|
"office": "Edinburgh",
|
||||||
|
"extn": "9497"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "13",
|
||||||
|
"name": "Charde Marshall",
|
||||||
|
"position": "Regional Director",
|
||||||
|
"salary": "$470,600",
|
||||||
|
"start_date": "2008/10/16",
|
||||||
|
"office": "San Francisco",
|
||||||
|
"extn": "6741"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "14",
|
||||||
|
"name": "Haley Kennedy",
|
||||||
|
"position": "Senior Marketing Designer",
|
||||||
|
"salary": "$313,500",
|
||||||
|
"start_date": "2012/12/18",
|
||||||
|
"office": "London",
|
||||||
|
"extn": "3597"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "15",
|
||||||
|
"name": "Tatyana Fitzpatrick",
|
||||||
|
"position": "Regional Director",
|
||||||
|
"salary": "$385,750",
|
||||||
|
"start_date": "2010/03/17",
|
||||||
|
"office": "London",
|
||||||
|
"extn": "1965"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "16",
|
||||||
|
"name": "Michael Silva",
|
||||||
|
"position": "Marketing Designer",
|
||||||
|
"salary": "$198,500",
|
||||||
|
"start_date": "2012/11/27",
|
||||||
|
"office": "London",
|
||||||
|
"extn": "1581"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "17",
|
||||||
|
"name": "Paul Byrd",
|
||||||
|
"position": "Chief Financial Officer (CFO)",
|
||||||
|
"salary": "$725,000",
|
||||||
|
"start_date": "2010/06/09",
|
||||||
|
"office": "New York",
|
||||||
|
"extn": "3059"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "18",
|
||||||
|
"name": "Gloria Little",
|
||||||
|
"position": "Systems Administrator",
|
||||||
|
"salary": "$237,500",
|
||||||
|
"start_date": "2009/04/10",
|
||||||
|
"office": "New York",
|
||||||
|
"extn": "1721"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "19",
|
||||||
|
"name": "Bradley Greer",
|
||||||
|
"position": "Software Engineer",
|
||||||
|
"salary": "$132,000",
|
||||||
|
"start_date": "2012/10/13",
|
||||||
|
"office": "London",
|
||||||
|
"extn": "2558"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "20",
|
||||||
|
"name": "Dai Rios",
|
||||||
|
"position": "Personnel Lead",
|
||||||
|
"salary": "$217,500",
|
||||||
|
"start_date": "2012/09/26",
|
||||||
|
"office": "Edinburgh",
|
||||||
|
"extn": "2290"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "21",
|
||||||
|
"name": "Jenette Caldwell",
|
||||||
|
"position": "Development Lead",
|
||||||
|
"salary": "$345,000",
|
||||||
|
"start_date": "2011/09/03",
|
||||||
|
"office": "New York",
|
||||||
|
"extn": "1937"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "22",
|
||||||
|
"name": "Yuri Berry",
|
||||||
|
"position": "Chief Marketing Officer (CMO)",
|
||||||
|
"salary": "$675,000",
|
||||||
|
"start_date": "2009/06/25",
|
||||||
|
"office": "New York",
|
||||||
|
"extn": "6154"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "23",
|
||||||
|
"name": "Caesar Vance",
|
||||||
|
"position": "Pre-Sales Support",
|
||||||
|
"salary": "$106,450",
|
||||||
|
"start_date": "2011/12/12",
|
||||||
|
"office": "New York",
|
||||||
|
"extn": "8330"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "24",
|
||||||
|
"name": "Doris Wilder",
|
||||||
|
"position": "Sales Assistant",
|
||||||
|
"salary": "$85,600",
|
||||||
|
"start_date": "2010/09/20",
|
||||||
|
"office": "Sidney",
|
||||||
|
"extn": "3023"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "25",
|
||||||
|
"name": "Angelica Ramos",
|
||||||
|
"position": "Chief Executive Officer (CEO)",
|
||||||
|
"salary": "$1,200,000",
|
||||||
|
"start_date": "2009/10/09",
|
||||||
|
"office": "London",
|
||||||
|
"extn": "5797"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "26",
|
||||||
|
"name": "Gavin Joyce",
|
||||||
|
"position": "Developer",
|
||||||
|
"salary": "$92,575",
|
||||||
|
"start_date": "2010/12/22",
|
||||||
|
"office": "Edinburgh",
|
||||||
|
"extn": "8822"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "27",
|
||||||
|
"name": "Jennifer Chang",
|
||||||
|
"position": "Regional Director",
|
||||||
|
"salary": "$357,650",
|
||||||
|
"start_date": "2010/11/14",
|
||||||
|
"office": "Singapore",
|
||||||
|
"extn": "9239"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "28",
|
||||||
|
"name": "Brenden Wagner",
|
||||||
|
"position": "Software Engineer",
|
||||||
|
"salary": "$206,850",
|
||||||
|
"start_date": "2011/06/07",
|
||||||
|
"office": "San Francisco",
|
||||||
|
"extn": "1314"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "29",
|
||||||
|
"name": "Fiona Green",
|
||||||
|
"position": "Chief Operating Officer (COO)",
|
||||||
|
"salary": "$850,000",
|
||||||
|
"start_date": "2010/03/11",
|
||||||
|
"office": "San Francisco",
|
||||||
|
"extn": "2947"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "30",
|
||||||
|
"name": "Shou Itou",
|
||||||
|
"position": "Regional Marketing",
|
||||||
|
"salary": "$163,000",
|
||||||
|
"start_date": "2011/08/14",
|
||||||
|
"office": "Tokyo",
|
||||||
|
"extn": "8899"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "31",
|
||||||
|
"name": "Michelle House",
|
||||||
|
"position": "Integration Specialist",
|
||||||
|
"salary": "$95,400",
|
||||||
|
"start_date": "2011/06/02",
|
||||||
|
"office": "Sidney",
|
||||||
|
"extn": "2769"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "32",
|
||||||
|
"name": "Suki Burks",
|
||||||
|
"position": "Developer",
|
||||||
|
"salary": "$114,500",
|
||||||
|
"start_date": "2009/10/22",
|
||||||
|
"office": "London",
|
||||||
|
"extn": "6832"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "33",
|
||||||
|
"name": "Prescott Bartlett",
|
||||||
|
"position": "Technical Author",
|
||||||
|
"salary": "$145,000",
|
||||||
|
"start_date": "2011/05/07",
|
||||||
|
"office": "London",
|
||||||
|
"extn": "3606"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "34",
|
||||||
|
"name": "Gavin Cortez",
|
||||||
|
"position": "Team Leader",
|
||||||
|
"salary": "$235,500",
|
||||||
|
"start_date": "2008/10/26",
|
||||||
|
"office": "San Francisco",
|
||||||
|
"extn": "2860"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "35",
|
||||||
|
"name": "Martena Mccray",
|
||||||
|
"position": "Post-Sales support",
|
||||||
|
"salary": "$324,050",
|
||||||
|
"start_date": "2011/03/09",
|
||||||
|
"office": "Edinburgh",
|
||||||
|
"extn": "8240"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "36",
|
||||||
|
"name": "Unity Butler",
|
||||||
|
"position": "Marketing Designer",
|
||||||
|
"salary": "$85,675",
|
||||||
|
"start_date": "2009/12/09",
|
||||||
|
"office": "San Francisco",
|
||||||
|
"extn": "5384"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "37",
|
||||||
|
"name": "Howard Hatfield",
|
||||||
|
"position": "Office Manager",
|
||||||
|
"salary": "$164,500",
|
||||||
|
"start_date": "2008/12/16",
|
||||||
|
"office": "San Francisco",
|
||||||
|
"extn": "7031"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "38",
|
||||||
|
"name": "Hope Fuentes",
|
||||||
|
"position": "Secretary",
|
||||||
|
"salary": "$109,850",
|
||||||
|
"start_date": "2010/02/12",
|
||||||
|
"office": "San Francisco",
|
||||||
|
"extn": "6318"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "39",
|
||||||
|
"name": "Vivian Harrell",
|
||||||
|
"position": "Financial Controller",
|
||||||
|
"salary": "$452,500",
|
||||||
|
"start_date": "2009/02/14",
|
||||||
|
"office": "San Francisco",
|
||||||
|
"extn": "9422"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "40",
|
||||||
|
"name": "Timothy Mooney",
|
||||||
|
"position": "Office Manager",
|
||||||
|
"salary": "$136,200",
|
||||||
|
"start_date": "2008/12/11",
|
||||||
|
"office": "London",
|
||||||
|
"extn": "7580"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "41",
|
||||||
|
"name": "Jackson Bradshaw",
|
||||||
|
"position": "Director",
|
||||||
|
"salary": "$645,750",
|
||||||
|
"start_date": "2008/09/26",
|
||||||
|
"office": "New York",
|
||||||
|
"extn": "1042"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "42",
|
||||||
|
"name": "Olivia Liang",
|
||||||
|
"position": "Support Engineer",
|
||||||
|
"salary": "$234,500",
|
||||||
|
"start_date": "2011/02/03",
|
||||||
|
"office": "Singapore",
|
||||||
|
"extn": "2120"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "43",
|
||||||
|
"name": "Bruno Nash",
|
||||||
|
"position": "Software Engineer",
|
||||||
|
"salary": "$163,500",
|
||||||
|
"start_date": "2011/05/03",
|
||||||
|
"office": "London",
|
||||||
|
"extn": "6222"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "44",
|
||||||
|
"name": "Sakura Yamamoto",
|
||||||
|
"position": "Support Engineer",
|
||||||
|
"salary": "$139,575",
|
||||||
|
"start_date": "2009/08/19",
|
||||||
|
"office": "Tokyo",
|
||||||
|
"extn": "9383"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "45",
|
||||||
|
"name": "Thor Walton",
|
||||||
|
"position": "Developer",
|
||||||
|
"salary": "$98,540",
|
||||||
|
"start_date": "2013/08/11",
|
||||||
|
"office": "New York",
|
||||||
|
"extn": "8327"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "46",
|
||||||
|
"name": "Finn Camacho",
|
||||||
|
"position": "Support Engineer",
|
||||||
|
"salary": "$87,500",
|
||||||
|
"start_date": "2009/07/07",
|
||||||
|
"office": "San Francisco",
|
||||||
|
"extn": "2927"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "47",
|
||||||
|
"name": "Serge Baldwin",
|
||||||
|
"position": "Data Coordinator",
|
||||||
|
"salary": "$138,575",
|
||||||
|
"start_date": "2012/04/09",
|
||||||
|
"office": "Singapore",
|
||||||
|
"extn": "8352"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "48",
|
||||||
|
"name": "Zenaida Frank",
|
||||||
|
"position": "Software Engineer",
|
||||||
|
"salary": "$125,250",
|
||||||
|
"start_date": "2010/01/04",
|
||||||
|
"office": "New York",
|
||||||
|
"extn": "7439"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "49",
|
||||||
|
"name": "Zorita Serrano",
|
||||||
|
"position": "Software Engineer",
|
||||||
|
"salary": "$115,000",
|
||||||
|
"start_date": "2012/06/01",
|
||||||
|
"office": "San Francisco",
|
||||||
|
"extn": "4389"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "50",
|
||||||
|
"name": "Jennifer Acosta",
|
||||||
|
"position": "Junior Javascript Developer",
|
||||||
|
"salary": "$75,650",
|
||||||
|
"start_date": "2013/02/01",
|
||||||
|
"office": "Edinburgh",
|
||||||
|
"extn": "3431"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "51",
|
||||||
|
"name": "Cara Stevens",
|
||||||
|
"position": "Sales Assistant",
|
||||||
|
"salary": "$145,600",
|
||||||
|
"start_date": "2011/12/06",
|
||||||
|
"office": "New York",
|
||||||
|
"extn": "3990"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "52",
|
||||||
|
"name": "Hermione Butler",
|
||||||
|
"position": "Regional Director",
|
||||||
|
"salary": "$356,250",
|
||||||
|
"start_date": "2011/03/21",
|
||||||
|
"office": "London",
|
||||||
|
"extn": "1016"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "53",
|
||||||
|
"name": "Lael Greer",
|
||||||
|
"position": "Systems Administrator",
|
||||||
|
"salary": "$103,500",
|
||||||
|
"start_date": "2009/02/27",
|
||||||
|
"office": "London",
|
||||||
|
"extn": "6733"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "54",
|
||||||
|
"name": "Jonas Alexander",
|
||||||
|
"position": "Developer",
|
||||||
|
"salary": "$86,500",
|
||||||
|
"start_date": "2010/07/14",
|
||||||
|
"office": "San Francisco",
|
||||||
|
"extn": "8196"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "55",
|
||||||
|
"name": "Shad Decker",
|
||||||
|
"position": "Regional Director",
|
||||||
|
"salary": "$183,000",
|
||||||
|
"start_date": "2008/11/13",
|
||||||
|
"office": "Edinburgh",
|
||||||
|
"extn": "6373"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "56",
|
||||||
|
"name": "Michael Bruce",
|
||||||
|
"position": "Javascript Developer",
|
||||||
|
"salary": "$183,000",
|
||||||
|
"start_date": "2011/06/27",
|
||||||
|
"office": "Singapore",
|
||||||
|
"extn": "5384"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "57",
|
||||||
|
"name": "Donna Snider",
|
||||||
|
"position": "Customer Support",
|
||||||
|
"salary": "$112,000",
|
||||||
|
"start_date": "2011/01/25",
|
||||||
|
"office": "New York",
|
||||||
|
"extn": "4226"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1 @@
|
||||||
|
["Andorra","United Arab Emirates","Afghanistan","Antigua and Barbuda","Anguilla","Albania","Armenia","Angola","Antarctica","Argentina","American Samoa","Austria","Australia","Aruba","Åland","Azerbaijan","Bosnia and Herzegovina","Barbados","Bangladesh","Belgium","Burkina Faso","Bulgaria","Bahrain","Burundi","Benin","Saint Barthélemy","Bermuda","Brunei","Bolivia","Bonaire","Brazil","Bahamas","Bhutan","Bouvet Island","Botswana","Belarus","Belize","Canada","Cocos [Keeling] Islands","Congo","Central African Republic","Republic of the Congo","Switzerland","Ivory Coast","Cook Islands","Chile","Cameroon","China","Colombia","Costa Rica","Cuba","Cape Verde","Curacao","Christmas Island","Cyprus","Czechia","Germany","Djibouti","Denmark","Dominica","Dominican Republic","Algeria","Ecuador","Estonia","Egypt","Western Sahara","Eritrea","Spain","Ethiopia","Finland","Fiji","Falkland Islands","Micronesia","Faroe Islands","France","Gabon","United Kingdom","Grenada","Georgia","French Guiana","Guernsey","Ghana","Gibraltar","Greenland","Gambia","Guinea","Guadeloupe","Equatorial Guinea","Greece","South Georgia and the South Sandwich Islands","Guatemala","Guam","Guinea-Bissau","Guyana","Hong Kong","Heard Island and McDonald Islands","Honduras","Croatia","Haiti","Hungary","Indonesia","Ireland","Israel","Isle of Man","India","British Indian Ocean Territory","Iraq","Iran","Iceland","Italy","Jersey","Jamaica","Jordan","Japan","Kenya","Kyrgyzstan","Cambodia","Kiribati","Comoros","Saint Kitts and Nevis","North Korea","South Korea","Kuwait","Cayman Islands","Kazakhstan","Laos","Lebanon","Saint Lucia","Liechtenstein","Sri Lanka","Liberia","Lesotho","Lithuania","Luxembourg","Latvia","Libya","Morocco","Monaco","Moldova","Montenegro","Saint Martin","Madagascar","Marshall Islands","Macedonia","Mali","Myanmar [Burma]","Mongolia","Macao","Northern Mariana Islands","Martinique","Mauritania","Montserrat","Malta","Mauritius","Maldives","Malawi","Mexico","Malaysia","Mozambique","Namibia","New Caledonia","Niger","Norfolk Island","Nigeria","Nicaragua","Netherlands","Norway","Nepal","Nauru","Niue","New Zealand","Oman","Panama","Peru","French Polynesia","Papua New Guinea","Philippines","Pakistan","Poland","Saint Pierre and Miquelon","Pitcairn Islands","Puerto Rico","Palestine","Portugal","Palau","Paraguay","Qatar","Réunion","Romania","Serbia","Russia","Rwanda","Saudi Arabia","Solomon Islands","Seychelles","Sudan","Sweden","Singapore","Saint Helena","Slovenia","Svalbard and Jan Mayen","Slovakia","Sierra Leone","San Marino","Senegal","Somalia","Suriname","South Sudan","São Tomé and Príncipe","El Salvador","Sint Maarten","Syria","Swaziland","Turks and Caicos Islands","Chad","French Southern Territories","Togo","Thailand","Tajikistan","Tokelau","East Timor","Turkmenistan","Tunisia","Tonga","Turkey","Trinidad and Tobago","Tuvalu","Taiwan","Tanzania","Ukraine","Uganda","U.S. Minor Outlying Islands","United States","Uruguay","Uzbekistan","Vatican City","Saint Vincent and the Grenadines","Venezuela","British Virgin Islands","U.S. Virgin Islands","Vietnam","Vanuatu","Wallis and Futuna","Samoa","Kosovo","Yemen","Mayotte","South Africa","Zambia","Zimbabwe"]
|
||||||
|
|
@ -0,0 +1,78 @@
|
||||||
|
[
|
||||||
|
{
|
||||||
|
"title": "Redesign website",
|
||||||
|
"start": "2020-04-01",
|
||||||
|
"textColor": "rgb(52, 108, 176)",
|
||||||
|
"backgroundColor": "rgba(52, 108, 176, .12)",
|
||||||
|
"borderColor": "rgb(52, 108, 176)"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"title": "Write new content",
|
||||||
|
"start": "2020-04-07",
|
||||||
|
"end": "2020-04-10",
|
||||||
|
"textColor": "rgb(0, 162, 138)",
|
||||||
|
"backgroundColor": "rgba(0, 162, 138, .12)",
|
||||||
|
"borderColor": "rgb(0, 162, 138)"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": 999,
|
||||||
|
"title": "Apply new styles",
|
||||||
|
"start": "2020-04-09T16:00:00",
|
||||||
|
"textColor": "rgb(95, 75, 139)",
|
||||||
|
"backgroundColor": "rgba(95, 75, 139, .12)",
|
||||||
|
"borderColor": "rgb(95, 75, 139)"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": 999,
|
||||||
|
"title": "Review",
|
||||||
|
"start": "2020-04-16T16:00:00",
|
||||||
|
"textColor": "rgb(0, 162, 138)",
|
||||||
|
"backgroundColor": "rgba(0, 162, 138, .12)",
|
||||||
|
"borderColor": "rgb(0, 162, 138)"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"title": "Conference",
|
||||||
|
"start": "2020-04-11",
|
||||||
|
"end": "2020-04-13",
|
||||||
|
"textColor": "rgb(1, 121, 168)",
|
||||||
|
"backgroundColor": "rgba(1, 121, 168, .12)",
|
||||||
|
"borderColor": "rgb(1, 121, 168)"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"title": "Meeting",
|
||||||
|
"start": "2020-04-12T10:30:00",
|
||||||
|
"end": "2020-04-12T12:30:00",
|
||||||
|
"textColor": "rgb(249, 172, 47)",
|
||||||
|
"backgroundColor": "rgba(249, 172, 47, .12)",
|
||||||
|
"borderColor": "rgb(249, 172, 47)"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"title": "Deploy",
|
||||||
|
"start": "2020-04-12T12:00:00",
|
||||||
|
"textColor": "rgb(0, 162, 138)",
|
||||||
|
"backgroundColor": "rgba(0, 162, 138, .12)",
|
||||||
|
"borderColor": "rgb(0, 162, 138)"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"title": "Meeting",
|
||||||
|
"start": "2020-04-25T14:30:00",
|
||||||
|
"textColor": "rgb(249, 172, 47)",
|
||||||
|
"backgroundColor": "rgba(249, 172, 47, .12)",
|
||||||
|
"borderColor": "rgb(249, 172, 47)"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"title": "Go live!",
|
||||||
|
"start": "2020-04-30T07:00:00",
|
||||||
|
"textColor": "rgb(183, 107, 163)",
|
||||||
|
"backgroundColor": "rgba(183, 107, 163, .12)",
|
||||||
|
"borderColor": "rgb(183, 107, 163)"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"title": "Click for Project",
|
||||||
|
"url": "page-project.html",
|
||||||
|
"start": "2020-04-28",
|
||||||
|
"textColor": "rgb(95, 75, 139)",
|
||||||
|
"backgroundColor": "rgba(95, 75, 139, .12)",
|
||||||
|
"borderColor": "rgb(95, 75, 139)"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
|
@ -0,0 +1,452 @@
|
||||||
|
[
|
||||||
|
{
|
||||||
|
"year": "1961",
|
||||||
|
"value": "West Side Story",
|
||||||
|
"tokens": [
|
||||||
|
"West",
|
||||||
|
"Side",
|
||||||
|
"Story"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"year": "1962",
|
||||||
|
"value": "Lawrence of Arabia",
|
||||||
|
"tokens": [
|
||||||
|
"Lawrence",
|
||||||
|
"of",
|
||||||
|
"Arabia"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"year": "1963",
|
||||||
|
"value": "Tom Jones",
|
||||||
|
"tokens": [
|
||||||
|
"Tom",
|
||||||
|
"Jones"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"year": "1964",
|
||||||
|
"value": "My Fair Lady",
|
||||||
|
"tokens": [
|
||||||
|
"My",
|
||||||
|
"Fair",
|
||||||
|
"Lady"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"year": "1965",
|
||||||
|
"value": "The Sound of Music",
|
||||||
|
"tokens": [
|
||||||
|
"The",
|
||||||
|
"Sound",
|
||||||
|
"of",
|
||||||
|
"Music"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"year": "1966",
|
||||||
|
"value": "A Man for All Seasons",
|
||||||
|
"tokens": [
|
||||||
|
"A",
|
||||||
|
"Man",
|
||||||
|
"for",
|
||||||
|
"All",
|
||||||
|
"Seasons"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"year": "1967",
|
||||||
|
"value": "In the Heat of the Night",
|
||||||
|
"tokens": [
|
||||||
|
"In",
|
||||||
|
"the",
|
||||||
|
"Heat",
|
||||||
|
"of",
|
||||||
|
"the",
|
||||||
|
"Night"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"year": "1968",
|
||||||
|
"value": "Oliver!",
|
||||||
|
"tokens": [
|
||||||
|
"Oliver!"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"year": "1969",
|
||||||
|
"value": "Midnight Cowboy",
|
||||||
|
"tokens": [
|
||||||
|
"Midnight",
|
||||||
|
"Cowboy"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"year": "1970",
|
||||||
|
"value": "Patton",
|
||||||
|
"tokens": [
|
||||||
|
"Patton"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"year": "1971",
|
||||||
|
"value": "The French Connection",
|
||||||
|
"tokens": [
|
||||||
|
"The",
|
||||||
|
"French",
|
||||||
|
"Connection"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"year": "1972",
|
||||||
|
"value": "The Godfather",
|
||||||
|
"tokens": [
|
||||||
|
"The",
|
||||||
|
"Godfather"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"year": "1973",
|
||||||
|
"value": "The Sting",
|
||||||
|
"tokens": [
|
||||||
|
"The",
|
||||||
|
"Sting"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"year": "1974",
|
||||||
|
"value": "The Godfather Part II",
|
||||||
|
"tokens": [
|
||||||
|
"The",
|
||||||
|
"Godfather",
|
||||||
|
"Part",
|
||||||
|
"II"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"year": "1975",
|
||||||
|
"value": "One Flew over the Cuckoo's Nest",
|
||||||
|
"tokens": [
|
||||||
|
"One",
|
||||||
|
"Flew",
|
||||||
|
"over",
|
||||||
|
"the",
|
||||||
|
"Cuckoo's",
|
||||||
|
"Nest"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"year": "1976",
|
||||||
|
"value": "Rocky",
|
||||||
|
"tokens": [
|
||||||
|
"Rocky"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"year": "1977",
|
||||||
|
"value": "Annie Hall",
|
||||||
|
"tokens": [
|
||||||
|
"Annie",
|
||||||
|
"Hall"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"year": "1978",
|
||||||
|
"value": "The Deer Hunter",
|
||||||
|
"tokens": [
|
||||||
|
"The",
|
||||||
|
"Deer",
|
||||||
|
"Hunter"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"year": "1979",
|
||||||
|
"value": "Kramer vs. Kramer",
|
||||||
|
"tokens": [
|
||||||
|
"Kramer",
|
||||||
|
"vs.",
|
||||||
|
"Kramer"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"year": "1980",
|
||||||
|
"value": "Ordinary People",
|
||||||
|
"tokens": [
|
||||||
|
"Ordinary",
|
||||||
|
"People"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"year": "1981",
|
||||||
|
"value": "Chariots of Fire",
|
||||||
|
"tokens": [
|
||||||
|
"Chariots",
|
||||||
|
"of",
|
||||||
|
"Fire"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"year": "1982",
|
||||||
|
"value": "Gandhi",
|
||||||
|
"tokens": [
|
||||||
|
"Gandhi"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"year": "1983",
|
||||||
|
"value": "Terms of Endearment",
|
||||||
|
"tokens": [
|
||||||
|
"Terms",
|
||||||
|
"of",
|
||||||
|
"Endearment"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"year": "1984",
|
||||||
|
"value": "Amadeus",
|
||||||
|
"tokens": [
|
||||||
|
"Amadeus"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"year": "1985",
|
||||||
|
"value": "Out of Africa",
|
||||||
|
"tokens": [
|
||||||
|
"Out",
|
||||||
|
"of",
|
||||||
|
"Africa"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"year": "1986",
|
||||||
|
"value": "Platoon",
|
||||||
|
"tokens": [
|
||||||
|
"Platoon"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"year": "1987",
|
||||||
|
"value": "The Last Emperor",
|
||||||
|
"tokens": [
|
||||||
|
"The",
|
||||||
|
"Last",
|
||||||
|
"Emperor"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"year": "1988",
|
||||||
|
"value": "Rain Man",
|
||||||
|
"tokens": [
|
||||||
|
"Rain",
|
||||||
|
"Man"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"year": "1989",
|
||||||
|
"value": "Driving Miss Daisy",
|
||||||
|
"tokens": [
|
||||||
|
"Driving",
|
||||||
|
"Miss",
|
||||||
|
"Daisy"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"year": "1990",
|
||||||
|
"value": "Dances With Wolves",
|
||||||
|
"tokens": [
|
||||||
|
"Dances",
|
||||||
|
"With",
|
||||||
|
"Wolves"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"year": "1991",
|
||||||
|
"value": "The Silence of the Lambs",
|
||||||
|
"tokens": [
|
||||||
|
"The",
|
||||||
|
"Silence",
|
||||||
|
"of",
|
||||||
|
"the",
|
||||||
|
"Lambs"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"year": "1992",
|
||||||
|
"value": "Unforgiven",
|
||||||
|
"tokens": [
|
||||||
|
"Unforgiven"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"year": "1993",
|
||||||
|
"value": "Schindler’s List",
|
||||||
|
"tokens": [
|
||||||
|
"Schindler’s",
|
||||||
|
"List"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"year": "1994",
|
||||||
|
"value": "Forrest Gump",
|
||||||
|
"tokens": [
|
||||||
|
"Forrest",
|
||||||
|
"Gump"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"year": "1995",
|
||||||
|
"value": "Braveheart",
|
||||||
|
"tokens": [
|
||||||
|
"Braveheart"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"year": "1996",
|
||||||
|
"value": "The English Patient",
|
||||||
|
"tokens": [
|
||||||
|
"The",
|
||||||
|
"English",
|
||||||
|
"Patient"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"year": "1997",
|
||||||
|
"value": "Titanic",
|
||||||
|
"tokens": [
|
||||||
|
"Titanic"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"year": "1998",
|
||||||
|
"value": "Shakespeare in Love",
|
||||||
|
"tokens": [
|
||||||
|
"Shakespeare",
|
||||||
|
"in",
|
||||||
|
"Love"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"year": "1999",
|
||||||
|
"value": "American Beauty",
|
||||||
|
"tokens": [
|
||||||
|
"American",
|
||||||
|
"Beauty"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"year": "2000",
|
||||||
|
"value": "Gladiator",
|
||||||
|
"tokens": [
|
||||||
|
"Gladiator"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"year": "2001",
|
||||||
|
"value": "A Beautiful Mind",
|
||||||
|
"tokens": [
|
||||||
|
"A",
|
||||||
|
"Beautiful",
|
||||||
|
"Mind"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"year": "2002",
|
||||||
|
"value": "Chicago",
|
||||||
|
"tokens": [
|
||||||
|
"Chicago"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"year": "2003",
|
||||||
|
"value": "The Lord of the Rings: The Return of the King",
|
||||||
|
"tokens": [
|
||||||
|
"The",
|
||||||
|
"Lord",
|
||||||
|
"of",
|
||||||
|
"the",
|
||||||
|
"Rings:",
|
||||||
|
"The",
|
||||||
|
"Return",
|
||||||
|
"of",
|
||||||
|
"the",
|
||||||
|
"King"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"year": "2004",
|
||||||
|
"value": "Million Dollar Baby",
|
||||||
|
"tokens": [
|
||||||
|
"Million",
|
||||||
|
"Dollar",
|
||||||
|
"Baby"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"year": "2005",
|
||||||
|
"value": "Crash",
|
||||||
|
"tokens": [
|
||||||
|
"Crash"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"year": "2006",
|
||||||
|
"value": "The Departed",
|
||||||
|
"tokens": [
|
||||||
|
"The",
|
||||||
|
"Departed"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"year": "2007",
|
||||||
|
"value": "No Country for Old Men",
|
||||||
|
"tokens": [
|
||||||
|
"No",
|
||||||
|
"Country",
|
||||||
|
"for",
|
||||||
|
"Old",
|
||||||
|
"Men"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"year": "2008",
|
||||||
|
"value": "Slumdog Millionaire",
|
||||||
|
"tokens": [
|
||||||
|
"Slumdog",
|
||||||
|
"Millionaire"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"year": "2009",
|
||||||
|
"value": "The Hurt Locker",
|
||||||
|
"tokens": [
|
||||||
|
"The",
|
||||||
|
"Hurt",
|
||||||
|
"Locker"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"year": "2010",
|
||||||
|
"value": "The King's Speech",
|
||||||
|
"tokens": [
|
||||||
|
"The",
|
||||||
|
"King's",
|
||||||
|
"Speech"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"year": "2011",
|
||||||
|
"value": "The Artist",
|
||||||
|
"tokens": [
|
||||||
|
"The",
|
||||||
|
"Artist"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"year": "2012",
|
||||||
|
"value": "Argo",
|
||||||
|
"tokens": [
|
||||||
|
"Argo"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
|
@ -0,0 +1,14 @@
|
||||||
|
[
|
||||||
|
{
|
||||||
|
"year": "1956",
|
||||||
|
"value": "Around the World in 80 Days",
|
||||||
|
"tokens": [
|
||||||
|
"Around",
|
||||||
|
"the",
|
||||||
|
"World",
|
||||||
|
"in",
|
||||||
|
"80",
|
||||||
|
"Days"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
|
@ -0,0 +1,14 @@
|
||||||
|
[
|
||||||
|
{
|
||||||
|
"year": "1956",
|
||||||
|
"value": "Around the World in 80 Days",
|
||||||
|
"tokens": [
|
||||||
|
"Around",
|
||||||
|
"the",
|
||||||
|
"World",
|
||||||
|
"in",
|
||||||
|
"80",
|
||||||
|
"Days"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
|
@ -0,0 +1,71 @@
|
||||||
|
[
|
||||||
|
{
|
||||||
|
"year": "1929/1930",
|
||||||
|
"value": "All Quiet on the Western Front",
|
||||||
|
"tokens": [
|
||||||
|
"All",
|
||||||
|
"Quiet",
|
||||||
|
"on",
|
||||||
|
"the",
|
||||||
|
"Western",
|
||||||
|
"Front"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"year": "1947",
|
||||||
|
"value": "Gentleman's Agreement",
|
||||||
|
"tokens": [
|
||||||
|
"Gentleman's",
|
||||||
|
"Agreement"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"year": "1949",
|
||||||
|
"value": "All the Kings Men",
|
||||||
|
"tokens": [
|
||||||
|
"All",
|
||||||
|
"the",
|
||||||
|
"Kings",
|
||||||
|
"Men"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"year": "1950",
|
||||||
|
"value": "All About Eve",
|
||||||
|
"tokens": [
|
||||||
|
"All",
|
||||||
|
"About",
|
||||||
|
"Eve"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"year": "1951",
|
||||||
|
"value": "An American in Paris",
|
||||||
|
"tokens": [
|
||||||
|
"An",
|
||||||
|
"American",
|
||||||
|
"in",
|
||||||
|
"Paris"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"year": "1956",
|
||||||
|
"value": "Around the World in 80 Days",
|
||||||
|
"tokens": [
|
||||||
|
"Around",
|
||||||
|
"the",
|
||||||
|
"World",
|
||||||
|
"in",
|
||||||
|
"80",
|
||||||
|
"Days"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"year": "1960",
|
||||||
|
"value": "The Apartment",
|
||||||
|
"tokens": [
|
||||||
|
"The",
|
||||||
|
"Apartment"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
|
@ -0,0 +1,11 @@
|
||||||
|
[
|
||||||
|
{
|
||||||
|
"year": "1950",
|
||||||
|
"value": "All About Eve",
|
||||||
|
"tokens": [
|
||||||
|
"All",
|
||||||
|
"About",
|
||||||
|
"Eve"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
|
@ -0,0 +1,11 @@
|
||||||
|
[
|
||||||
|
{
|
||||||
|
"year": "1950",
|
||||||
|
"value": "All About Eve",
|
||||||
|
"tokens": [
|
||||||
|
"All",
|
||||||
|
"About",
|
||||||
|
"Eve"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
|
@ -0,0 +1,11 @@
|
||||||
|
[
|
||||||
|
{
|
||||||
|
"year": "1950",
|
||||||
|
"value": "All About Eve",
|
||||||
|
"tokens": [
|
||||||
|
"All",
|
||||||
|
"About",
|
||||||
|
"Eve"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
|
@ -0,0 +1,11 @@
|
||||||
|
[
|
||||||
|
{
|
||||||
|
"year": "1950",
|
||||||
|
"value": "All About Eve",
|
||||||
|
"tokens": [
|
||||||
|
"All",
|
||||||
|
"About",
|
||||||
|
"Eve"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
|
@ -0,0 +1,10 @@
|
||||||
|
[
|
||||||
|
{
|
||||||
|
"year": "1947",
|
||||||
|
"value": "Gentleman's Agreement",
|
||||||
|
"tokens": [
|
||||||
|
"Gentleman's",
|
||||||
|
"Agreement"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
|
@ -0,0 +1,10 @@
|
||||||
|
[
|
||||||
|
{
|
||||||
|
"year": "1947",
|
||||||
|
"value": "Gentleman's Agreement",
|
||||||
|
"tokens": [
|
||||||
|
"Gentleman's",
|
||||||
|
"Agreement"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
|
@ -0,0 +1,10 @@
|
||||||
|
[
|
||||||
|
{
|
||||||
|
"year": "1947",
|
||||||
|
"value": "Gentleman's Agreement",
|
||||||
|
"tokens": [
|
||||||
|
"Gentleman's",
|
||||||
|
"Agreement"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
|
@ -0,0 +1,10 @@
|
||||||
|
[
|
||||||
|
{
|
||||||
|
"year": "1947",
|
||||||
|
"value": "Gentleman's Agreement",
|
||||||
|
"tokens": [
|
||||||
|
"Gentleman's",
|
||||||
|
"Agreement"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
|
@ -0,0 +1,10 @@
|
||||||
|
[
|
||||||
|
{
|
||||||
|
"year": "1947",
|
||||||
|
"value": "Gentleman's Agreement",
|
||||||
|
"tokens": [
|
||||||
|
"Gentleman's",
|
||||||
|
"Agreement"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
|
@ -0,0 +1,10 @@
|
||||||
|
[
|
||||||
|
{
|
||||||
|
"year": "1947",
|
||||||
|
"value": "Gentleman's Agreement",
|
||||||
|
"tokens": [
|
||||||
|
"Gentleman's",
|
||||||
|
"Agreement"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
|
@ -0,0 +1,10 @@
|
||||||
|
[
|
||||||
|
{
|
||||||
|
"year": "1947",
|
||||||
|
"value": "Gentleman's Agreement",
|
||||||
|
"tokens": [
|
||||||
|
"Gentleman's",
|
||||||
|
"Agreement"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
|
@ -0,0 +1,10 @@
|
||||||
|
[
|
||||||
|
{
|
||||||
|
"year": "1947",
|
||||||
|
"value": "Gentleman's Agreement",
|
||||||
|
"tokens": [
|
||||||
|
"Gentleman's",
|
||||||
|
"Agreement"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
|
@ -0,0 +1,33 @@
|
||||||
|
[
|
||||||
|
{
|
||||||
|
"year": "1929/1930",
|
||||||
|
"value": "All Quiet on the Western Front",
|
||||||
|
"tokens": [
|
||||||
|
"All",
|
||||||
|
"Quiet",
|
||||||
|
"on",
|
||||||
|
"the",
|
||||||
|
"Western",
|
||||||
|
"Front"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"year": "1949",
|
||||||
|
"value": "All the Kings Men",
|
||||||
|
"tokens": [
|
||||||
|
"All",
|
||||||
|
"the",
|
||||||
|
"Kings",
|
||||||
|
"Men"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"year": "1950",
|
||||||
|
"value": "All About Eve",
|
||||||
|
"tokens": [
|
||||||
|
"All",
|
||||||
|
"About",
|
||||||
|
"Eve"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
|
@ -0,0 +1,33 @@
|
||||||
|
[
|
||||||
|
{
|
||||||
|
"year": "1929/1930",
|
||||||
|
"value": "All Quiet on the Western Front",
|
||||||
|
"tokens": [
|
||||||
|
"All",
|
||||||
|
"Quiet",
|
||||||
|
"on",
|
||||||
|
"the",
|
||||||
|
"Western",
|
||||||
|
"Front"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"year": "1949",
|
||||||
|
"value": "All the Kings Men",
|
||||||
|
"tokens": [
|
||||||
|
"All",
|
||||||
|
"the",
|
||||||
|
"Kings",
|
||||||
|
"Men"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"year": "1950",
|
||||||
|
"value": "All About Eve",
|
||||||
|
"tokens": [
|
||||||
|
"All",
|
||||||
|
"About",
|
||||||
|
"Eve"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
|
@ -0,0 +1,12 @@
|
||||||
|
[
|
||||||
|
{
|
||||||
|
"year": "1951",
|
||||||
|
"value": "An American in Paris",
|
||||||
|
"tokens": [
|
||||||
|
"An",
|
||||||
|
"American",
|
||||||
|
"in",
|
||||||
|
"Paris"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
|
@ -0,0 +1,12 @@
|
||||||
|
[
|
||||||
|
{
|
||||||
|
"year": "1951",
|
||||||
|
"value": "An American in Paris",
|
||||||
|
"tokens": [
|
||||||
|
"An",
|
||||||
|
"American",
|
||||||
|
"in",
|
||||||
|
"Paris"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
|
@ -0,0 +1,12 @@
|
||||||
|
[
|
||||||
|
{
|
||||||
|
"year": "1951",
|
||||||
|
"value": "An American in Paris",
|
||||||
|
"tokens": [
|
||||||
|
"An",
|
||||||
|
"American",
|
||||||
|
"in",
|
||||||
|
"Paris"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
|
@ -0,0 +1,12 @@
|
||||||
|
[
|
||||||
|
{
|
||||||
|
"year": "1951",
|
||||||
|
"value": "An American in Paris",
|
||||||
|
"tokens": [
|
||||||
|
"An",
|
||||||
|
"American",
|
||||||
|
"in",
|
||||||
|
"Paris"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
|
@ -0,0 +1,12 @@
|
||||||
|
[
|
||||||
|
{
|
||||||
|
"year": "1951",
|
||||||
|
"value": "An American in Paris",
|
||||||
|
"tokens": [
|
||||||
|
"An",
|
||||||
|
"American",
|
||||||
|
"in",
|
||||||
|
"Paris"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
|
@ -0,0 +1,12 @@
|
||||||
|
[
|
||||||
|
{
|
||||||
|
"year": "1951",
|
||||||
|
"value": "An American in Paris",
|
||||||
|
"tokens": [
|
||||||
|
"An",
|
||||||
|
"American",
|
||||||
|
"in",
|
||||||
|
"Paris"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
|
@ -0,0 +1,12 @@
|
||||||
|
[
|
||||||
|
{
|
||||||
|
"year": "1951",
|
||||||
|
"value": "An American in Paris",
|
||||||
|
"tokens": [
|
||||||
|
"An",
|
||||||
|
"American",
|
||||||
|
"in",
|
||||||
|
"Paris"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
|
@ -0,0 +1,12 @@
|
||||||
|
[
|
||||||
|
{
|
||||||
|
"year": "1951",
|
||||||
|
"value": "An American in Paris",
|
||||||
|
"tokens": [
|
||||||
|
"An",
|
||||||
|
"American",
|
||||||
|
"in",
|
||||||
|
"Paris"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
|
@ -0,0 +1,10 @@
|
||||||
|
[
|
||||||
|
{
|
||||||
|
"year": "1960",
|
||||||
|
"value": "The Apartment",
|
||||||
|
"tokens": [
|
||||||
|
"The",
|
||||||
|
"Apartment"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
|
@ -0,0 +1,10 @@
|
||||||
|
[
|
||||||
|
{
|
||||||
|
"year": "1960",
|
||||||
|
"value": "The Apartment",
|
||||||
|
"tokens": [
|
||||||
|
"The",
|
||||||
|
"Apartment"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
|
@ -0,0 +1,10 @@
|
||||||
|
[
|
||||||
|
{
|
||||||
|
"year": "1960",
|
||||||
|
"value": "The Apartment",
|
||||||
|
"tokens": [
|
||||||
|
"The",
|
||||||
|
"Apartment"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
|
@ -0,0 +1,10 @@
|
||||||
|
[
|
||||||
|
{
|
||||||
|
"year": "1960",
|
||||||
|
"value": "The Apartment",
|
||||||
|
"tokens": [
|
||||||
|
"The",
|
||||||
|
"Apartment"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
|
@ -0,0 +1,10 @@
|
||||||
|
[
|
||||||
|
{
|
||||||
|
"year": "1960",
|
||||||
|
"value": "The Apartment",
|
||||||
|
"tokens": [
|
||||||
|
"The",
|
||||||
|
"Apartment"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
|
@ -0,0 +1,10 @@
|
||||||
|
[
|
||||||
|
{
|
||||||
|
"year": "1960",
|
||||||
|
"value": "The Apartment",
|
||||||
|
"tokens": [
|
||||||
|
"The",
|
||||||
|
"Apartment"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
|
@ -0,0 +1,10 @@
|
||||||
|
[
|
||||||
|
{
|
||||||
|
"year": "1960",
|
||||||
|
"value": "The Apartment",
|
||||||
|
"tokens": [
|
||||||
|
"The",
|
||||||
|
"Apartment"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
|
@ -0,0 +1,10 @@
|
||||||
|
[
|
||||||
|
{
|
||||||
|
"year": "1960",
|
||||||
|
"value": "The Apartment",
|
||||||
|
"tokens": [
|
||||||
|
"The",
|
||||||
|
"Apartment"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
|
@ -0,0 +1,14 @@
|
||||||
|
[
|
||||||
|
{
|
||||||
|
"year": "1956",
|
||||||
|
"value": "Around the World in 80 Days",
|
||||||
|
"tokens": [
|
||||||
|
"Around",
|
||||||
|
"the",
|
||||||
|
"World",
|
||||||
|
"in",
|
||||||
|
"80",
|
||||||
|
"Days"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
|
@ -0,0 +1,14 @@
|
||||||
|
[
|
||||||
|
{
|
||||||
|
"year": "1956",
|
||||||
|
"value": "Around the World in 80 Days",
|
||||||
|
"tokens": [
|
||||||
|
"Around",
|
||||||
|
"the",
|
||||||
|
"World",
|
||||||
|
"in",
|
||||||
|
"80",
|
||||||
|
"Days"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
|
@ -0,0 +1,14 @@
|
||||||
|
[
|
||||||
|
{
|
||||||
|
"year": "1956",
|
||||||
|
"value": "Around the World in 80 Days",
|
||||||
|
"tokens": [
|
||||||
|
"Around",
|
||||||
|
"the",
|
||||||
|
"World",
|
||||||
|
"in",
|
||||||
|
"80",
|
||||||
|
"Days"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
|
@ -0,0 +1,14 @@
|
||||||
|
[
|
||||||
|
{
|
||||||
|
"year": "1956",
|
||||||
|
"value": "Around the World in 80 Days",
|
||||||
|
"tokens": [
|
||||||
|
"Around",
|
||||||
|
"the",
|
||||||
|
"World",
|
||||||
|
"in",
|
||||||
|
"80",
|
||||||
|
"Days"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
|
@ -0,0 +1,14 @@
|
||||||
|
[
|
||||||
|
{
|
||||||
|
"year": "1956",
|
||||||
|
"value": "Around the World in 80 Days",
|
||||||
|
"tokens": [
|
||||||
|
"Around",
|
||||||
|
"the",
|
||||||
|
"World",
|
||||||
|
"in",
|
||||||
|
"80",
|
||||||
|
"Days"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
|
@ -0,0 +1,52 @@
|
||||||
|
[
|
||||||
|
{
|
||||||
|
"year": "1928/1929",
|
||||||
|
"value": "The Broadway Melody",
|
||||||
|
"tokens": [
|
||||||
|
"The",
|
||||||
|
"Broadway",
|
||||||
|
"Melody"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"year": "1935",
|
||||||
|
"value": "Mutiny on the Bounty",
|
||||||
|
"tokens": [
|
||||||
|
"Mutiny",
|
||||||
|
"on",
|
||||||
|
"the",
|
||||||
|
"Bounty"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"year": "1946",
|
||||||
|
"value": "The Best Years of Our Lives",
|
||||||
|
"tokens": [
|
||||||
|
"The",
|
||||||
|
"Best",
|
||||||
|
"Years",
|
||||||
|
"of",
|
||||||
|
"Our",
|
||||||
|
"Lives"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"year": "1957",
|
||||||
|
"value": "The Bridge on the River Kwai",
|
||||||
|
"tokens": [
|
||||||
|
"The",
|
||||||
|
"Bridge",
|
||||||
|
"on",
|
||||||
|
"the",
|
||||||
|
"River",
|
||||||
|
"Kwai"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"year": "1959",
|
||||||
|
"value": "Ben-Hur",
|
||||||
|
"tokens": [
|
||||||
|
"Ben-Hur"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
|
@ -0,0 +1,21 @@
|
||||||
|
[
|
||||||
|
{
|
||||||
|
"year": "1946",
|
||||||
|
"value": "The Best Years of Our Lives",
|
||||||
|
"tokens": [
|
||||||
|
"The",
|
||||||
|
"Best",
|
||||||
|
"Years",
|
||||||
|
"of",
|
||||||
|
"Our",
|
||||||
|
"Lives"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"year": "1959",
|
||||||
|
"value": "Ben-Hur",
|
||||||
|
"tokens": [
|
||||||
|
"Ben-Hur"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
|
@ -0,0 +1,9 @@
|
||||||
|
[
|
||||||
|
{
|
||||||
|
"year": "1959",
|
||||||
|
"value": "Ben-Hur",
|
||||||
|
"tokens": [
|
||||||
|
"Ben-Hur"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
|
@ -0,0 +1,9 @@
|
||||||
|
[
|
||||||
|
{
|
||||||
|
"year": "1959",
|
||||||
|
"value": "Ben-Hur",
|
||||||
|
"tokens": [
|
||||||
|
"Ben-Hur"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
|
@ -0,0 +1,9 @@
|
||||||
|
[
|
||||||
|
{
|
||||||
|
"year": "1959",
|
||||||
|
"value": "Ben-Hur",
|
||||||
|
"tokens": [
|
||||||
|
"Ben-Hur"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
|
@ -0,0 +1,9 @@
|
||||||
|
[
|
||||||
|
{
|
||||||
|
"year": "1959",
|
||||||
|
"value": "Ben-Hur",
|
||||||
|
"tokens": [
|
||||||
|
"Ben-Hur"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
|
@ -0,0 +1,14 @@
|
||||||
|
[
|
||||||
|
{
|
||||||
|
"year": "1946",
|
||||||
|
"value": "The Best Years of Our Lives",
|
||||||
|
"tokens": [
|
||||||
|
"The",
|
||||||
|
"Best",
|
||||||
|
"Years",
|
||||||
|
"of",
|
||||||
|
"Our",
|
||||||
|
"Lives"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
|
@ -0,0 +1,14 @@
|
||||||
|
[
|
||||||
|
{
|
||||||
|
"year": "1946",
|
||||||
|
"value": "The Best Years of Our Lives",
|
||||||
|
"tokens": [
|
||||||
|
"The",
|
||||||
|
"Best",
|
||||||
|
"Years",
|
||||||
|
"of",
|
||||||
|
"Our",
|
||||||
|
"Lives"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
|
@ -0,0 +1,12 @@
|
||||||
|
[
|
||||||
|
{
|
||||||
|
"year": "1935",
|
||||||
|
"value": "Mutiny on the Bounty",
|
||||||
|
"tokens": [
|
||||||
|
"Mutiny",
|
||||||
|
"on",
|
||||||
|
"the",
|
||||||
|
"Bounty"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
|
@ -0,0 +1,12 @@
|
||||||
|
[
|
||||||
|
{
|
||||||
|
"year": "1935",
|
||||||
|
"value": "Mutiny on the Bounty",
|
||||||
|
"tokens": [
|
||||||
|
"Mutiny",
|
||||||
|
"on",
|
||||||
|
"the",
|
||||||
|
"Bounty"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
|
@ -0,0 +1,12 @@
|
||||||
|
[
|
||||||
|
{
|
||||||
|
"year": "1935",
|
||||||
|
"value": "Mutiny on the Bounty",
|
||||||
|
"tokens": [
|
||||||
|
"Mutiny",
|
||||||
|
"on",
|
||||||
|
"the",
|
||||||
|
"Bounty"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
|
@ -0,0 +1,12 @@
|
||||||
|
[
|
||||||
|
{
|
||||||
|
"year": "1935",
|
||||||
|
"value": "Mutiny on the Bounty",
|
||||||
|
"tokens": [
|
||||||
|
"Mutiny",
|
||||||
|
"on",
|
||||||
|
"the",
|
||||||
|
"Bounty"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
|
@ -0,0 +1,12 @@
|
||||||
|
[
|
||||||
|
{
|
||||||
|
"year": "1935",
|
||||||
|
"value": "Mutiny on the Bounty",
|
||||||
|
"tokens": [
|
||||||
|
"Mutiny",
|
||||||
|
"on",
|
||||||
|
"the",
|
||||||
|
"Bounty"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
|
@ -0,0 +1,23 @@
|
||||||
|
[
|
||||||
|
{
|
||||||
|
"year": "1928/1929",
|
||||||
|
"value": "The Broadway Melody",
|
||||||
|
"tokens": [
|
||||||
|
"The",
|
||||||
|
"Broadway",
|
||||||
|
"Melody"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"year": "1957",
|
||||||
|
"value": "The Bridge on the River Kwai",
|
||||||
|
"tokens": [
|
||||||
|
"The",
|
||||||
|
"Bridge",
|
||||||
|
"on",
|
||||||
|
"the",
|
||||||
|
"River",
|
||||||
|
"Kwai"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
|
@ -0,0 +1,14 @@
|
||||||
|
[
|
||||||
|
{
|
||||||
|
"year": "1957",
|
||||||
|
"value": "The Bridge on the River Kwai",
|
||||||
|
"tokens": [
|
||||||
|
"The",
|
||||||
|
"Bridge",
|
||||||
|
"on",
|
||||||
|
"the",
|
||||||
|
"River",
|
||||||
|
"Kwai"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
|
@ -0,0 +1,14 @@
|
||||||
|
[
|
||||||
|
{
|
||||||
|
"year": "1957",
|
||||||
|
"value": "The Bridge on the River Kwai",
|
||||||
|
"tokens": [
|
||||||
|
"The",
|
||||||
|
"Bridge",
|
||||||
|
"on",
|
||||||
|
"the",
|
||||||
|
"River",
|
||||||
|
"Kwai"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
|
@ -0,0 +1,14 @@
|
||||||
|
[
|
||||||
|
{
|
||||||
|
"year": "1957",
|
||||||
|
"value": "The Bridge on the River Kwai",
|
||||||
|
"tokens": [
|
||||||
|
"The",
|
||||||
|
"Bridge",
|
||||||
|
"on",
|
||||||
|
"the",
|
||||||
|
"River",
|
||||||
|
"Kwai"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
|
@ -0,0 +1,14 @@
|
||||||
|
[
|
||||||
|
{
|
||||||
|
"year": "1957",
|
||||||
|
"value": "The Bridge on the River Kwai",
|
||||||
|
"tokens": [
|
||||||
|
"The",
|
||||||
|
"Bridge",
|
||||||
|
"on",
|
||||||
|
"the",
|
||||||
|
"River",
|
||||||
|
"Kwai"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
|
@ -0,0 +1,11 @@
|
||||||
|
[
|
||||||
|
{
|
||||||
|
"year": "1928/1929",
|
||||||
|
"value": "The Broadway Melody",
|
||||||
|
"tokens": [
|
||||||
|
"The",
|
||||||
|
"Broadway",
|
||||||
|
"Melody"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
|
@ -0,0 +1,11 @@
|
||||||
|
[
|
||||||
|
{
|
||||||
|
"year": "1928/1929",
|
||||||
|
"value": "The Broadway Melody",
|
||||||
|
"tokens": [
|
||||||
|
"The",
|
||||||
|
"Broadway",
|
||||||
|
"Melody"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
|
@ -0,0 +1,11 @@
|
||||||
|
[
|
||||||
|
{
|
||||||
|
"year": "1928/1929",
|
||||||
|
"value": "The Broadway Melody",
|
||||||
|
"tokens": [
|
||||||
|
"The",
|
||||||
|
"Broadway",
|
||||||
|
"Melody"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
|
@ -0,0 +1,11 @@
|
||||||
|
[
|
||||||
|
{
|
||||||
|
"year": "1928/1929",
|
||||||
|
"value": "The Broadway Melody",
|
||||||
|
"tokens": [
|
||||||
|
"The",
|
||||||
|
"Broadway",
|
||||||
|
"Melody"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
|
@ -0,0 +1,11 @@
|
||||||
|
[
|
||||||
|
{
|
||||||
|
"year": "1928/1929",
|
||||||
|
"value": "The Broadway Melody",
|
||||||
|
"tokens": [
|
||||||
|
"The",
|
||||||
|
"Broadway",
|
||||||
|
"Melody"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
|
@ -0,0 +1,11 @@
|
||||||
|
[
|
||||||
|
{
|
||||||
|
"year": "1928/1929",
|
||||||
|
"value": "The Broadway Melody",
|
||||||
|
"tokens": [
|
||||||
|
"The",
|
||||||
|
"Broadway",
|
||||||
|
"Melody"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
|
@ -0,0 +1,35 @@
|
||||||
|
[
|
||||||
|
{
|
||||||
|
"year": "1930/1931",
|
||||||
|
"value": "Cimarron",
|
||||||
|
"tokens": [
|
||||||
|
"Cimarron"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"year": "1932/1933",
|
||||||
|
"value": "Cavalcade",
|
||||||
|
"tokens": [
|
||||||
|
"Cavalcade"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"year": "1938",
|
||||||
|
"value": "You Can't Take It with You",
|
||||||
|
"tokens": [
|
||||||
|
"You",
|
||||||
|
"Can't",
|
||||||
|
"Take",
|
||||||
|
"It",
|
||||||
|
"with",
|
||||||
|
"You"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"year": "1943",
|
||||||
|
"value": "Casablanca",
|
||||||
|
"tokens": [
|
||||||
|
"Casablanca"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
|
@ -0,0 +1,28 @@
|
||||||
|
[
|
||||||
|
{
|
||||||
|
"year": "1932/1933",
|
||||||
|
"value": "Cavalcade",
|
||||||
|
"tokens": [
|
||||||
|
"Cavalcade"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"year": "1938",
|
||||||
|
"value": "You Can't Take It with You",
|
||||||
|
"tokens": [
|
||||||
|
"You",
|
||||||
|
"Can't",
|
||||||
|
"Take",
|
||||||
|
"It",
|
||||||
|
"with",
|
||||||
|
"You"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"year": "1943",
|
||||||
|
"value": "Casablanca",
|
||||||
|
"tokens": [
|
||||||
|
"Casablanca"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
|
@ -0,0 +1,14 @@
|
||||||
|
[
|
||||||
|
{
|
||||||
|
"year": "1938",
|
||||||
|
"value": "You Can't Take It with You",
|
||||||
|
"tokens": [
|
||||||
|
"You",
|
||||||
|
"Can't",
|
||||||
|
"Take",
|
||||||
|
"It",
|
||||||
|
"with",
|
||||||
|
"You"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
|
@ -0,0 +1,14 @@
|
||||||
|
[
|
||||||
|
{
|
||||||
|
"year": "1938",
|
||||||
|
"value": "You Can't Take It with You",
|
||||||
|
"tokens": [
|
||||||
|
"You",
|
||||||
|
"Can't",
|
||||||
|
"Take",
|
||||||
|
"It",
|
||||||
|
"with",
|
||||||
|
"You"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
|
@ -0,0 +1,9 @@
|
||||||
|
[
|
||||||
|
{
|
||||||
|
"year": "1943",
|
||||||
|
"value": "Casablanca",
|
||||||
|
"tokens": [
|
||||||
|
"Casablanca"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
|
@ -0,0 +1,9 @@
|
||||||
|
[
|
||||||
|
{
|
||||||
|
"year": "1943",
|
||||||
|
"value": "Casablanca",
|
||||||
|
"tokens": [
|
||||||
|
"Casablanca"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
|
@ -0,0 +1,9 @@
|
||||||
|
[
|
||||||
|
{
|
||||||
|
"year": "1943",
|
||||||
|
"value": "Casablanca",
|
||||||
|
"tokens": [
|
||||||
|
"Casablanca"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
|
@ -0,0 +1,9 @@
|
||||||
|
[
|
||||||
|
{
|
||||||
|
"year": "1943",
|
||||||
|
"value": "Casablanca",
|
||||||
|
"tokens": [
|
||||||
|
"Casablanca"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
|
@ -0,0 +1,9 @@
|
||||||
|
[
|
||||||
|
{
|
||||||
|
"year": "1943",
|
||||||
|
"value": "Casablanca",
|
||||||
|
"tokens": [
|
||||||
|
"Casablanca"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
|
@ -0,0 +1,9 @@
|
||||||
|
[
|
||||||
|
{
|
||||||
|
"year": "1943",
|
||||||
|
"value": "Casablanca",
|
||||||
|
"tokens": [
|
||||||
|
"Casablanca"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
|
@ -0,0 +1,9 @@
|
||||||
|
[
|
||||||
|
{
|
||||||
|
"year": "1943",
|
||||||
|
"value": "Casablanca",
|
||||||
|
"tokens": [
|
||||||
|
"Casablanca"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
|
@ -0,0 +1,9 @@
|
||||||
|
[
|
||||||
|
{
|
||||||
|
"year": "1943",
|
||||||
|
"value": "Casablanca",
|
||||||
|
"tokens": [
|
||||||
|
"Casablanca"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
|
@ -0,0 +1,9 @@
|
||||||
|
[
|
||||||
|
{
|
||||||
|
"year": "1932/1933",
|
||||||
|
"value": "Cavalcade",
|
||||||
|
"tokens": [
|
||||||
|
"Cavalcade"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
|
@ -0,0 +1,9 @@
|
||||||
|
[
|
||||||
|
{
|
||||||
|
"year": "1932/1933",
|
||||||
|
"value": "Cavalcade",
|
||||||
|
"tokens": [
|
||||||
|
"Cavalcade"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
|
@ -0,0 +1,9 @@
|
||||||
|
[
|
||||||
|
{
|
||||||
|
"year": "1932/1933",
|
||||||
|
"value": "Cavalcade",
|
||||||
|
"tokens": [
|
||||||
|
"Cavalcade"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
|
@ -0,0 +1,9 @@
|
||||||
|
[
|
||||||
|
{
|
||||||
|
"year": "1932/1933",
|
||||||
|
"value": "Cavalcade",
|
||||||
|
"tokens": [
|
||||||
|
"Cavalcade"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
|
@ -0,0 +1,9 @@
|
||||||
|
[
|
||||||
|
{
|
||||||
|
"year": "1932/1933",
|
||||||
|
"value": "Cavalcade",
|
||||||
|
"tokens": [
|
||||||
|
"Cavalcade"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
|
@ -0,0 +1,9 @@
|
||||||
|
[
|
||||||
|
{
|
||||||
|
"year": "1932/1933",
|
||||||
|
"value": "Cavalcade",
|
||||||
|
"tokens": [
|
||||||
|
"Cavalcade"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
|
@ -0,0 +1,9 @@
|
||||||
|
[
|
||||||
|
{
|
||||||
|
"year": "1932/1933",
|
||||||
|
"value": "Cavalcade",
|
||||||
|
"tokens": [
|
||||||
|
"Cavalcade"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
|
@ -0,0 +1,9 @@
|
||||||
|
[
|
||||||
|
{
|
||||||
|
"year": "1930/1931",
|
||||||
|
"value": "Cimarron",
|
||||||
|
"tokens": [
|
||||||
|
"Cimarron"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
|
@ -0,0 +1,9 @@
|
||||||
|
[
|
||||||
|
{
|
||||||
|
"year": "1930/1931",
|
||||||
|
"value": "Cimarron",
|
||||||
|
"tokens": [
|
||||||
|
"Cimarron"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
]
|
||||||
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue