├── README.md ├── Static ├── css │ ├── all.min.css │ ├── animate.min.css │ ├── animated-headeline.css │ ├── bootstrap-icons.css │ ├── bootstrap.min.css │ ├── css2.css │ ├── dataTables.bootstrap4.min.css │ ├── default.css │ ├── dropzone.css │ ├── flaticon.css │ ├── fontawesome-all.min.css │ ├── materialdesignicons.min.css │ ├── meanmenu.css │ ├── nice-select.css │ ├── prism-okaidia.css │ ├── responsive.css │ ├── sb-admin-2.min.css │ ├── slick.css │ ├── style.css │ └── theme.min.css ├── front │ ├── JTUSjIg1_i6t8kCHKm459W1hyzbi.woff2 │ ├── JTUSjIg1_i6t8kCHKm459WRhyzbi.woff2 │ ├── JTUSjIg1_i6t8kCHKm459WZhyzbi.woff2 │ ├── JTUSjIg1_i6t8kCHKm459Wdhyzbi.woff2 │ ├── JTUSjIg1_i6t8kCHKm459Wlhyw.woff2 │ ├── S6u9w4BMUTPHh6UVSwaPGR_p.woff2 │ ├── S6u9w4BMUTPHh6UVSwiPGQ.woff2 │ ├── S6u9w4BMUTPHh7USSwaPGR_p.woff2 │ ├── S6u9w4BMUTPHh7USSwiPGQ.woff2 │ ├── S6uyw4BMUTPHjx4wXg.woff2 │ ├── S6uyw4BMUTPHjxAwXjeu.woff2 │ ├── UcC73FwrK3iLTeHuS_fvQtMwCp50KnMa0ZL7SUc.woff2 │ ├── UcC73FwrK3iLTeHuS_fvQtMwCp50KnMa1ZL7.woff2 │ ├── UcC73FwrK3iLTeHuS_fvQtMwCp50KnMa1pL7SUc.woff2 │ ├── UcC73FwrK3iLTeHuS_fvQtMwCp50KnMa25L7SUc.woff2 │ ├── UcC73FwrK3iLTeHuS_fvQtMwCp50KnMa2JL7SUc.woff2 │ ├── UcC73FwrK3iLTeHuS_fvQtMwCp50KnMa2ZL7SUc.woff2 │ ├── UcC73FwrK3iLTeHuS_fvQtMwCp50KnMa2pL7SUc.woff2 │ ├── bootstrap-icons.woff │ ├── bootstrap-icons.woff2 │ ├── fa-brands-400.eot │ ├── fa-brands-400.ttf │ ├── fa-brands-400.woff │ ├── fa-brands-400.woff2 │ ├── fa-regular-400.eot │ ├── fa-regular-400.ttf │ ├── fa-regular-400.woff │ ├── fa-regular-400.woff2 │ ├── fa-solid-900.eot │ ├── fa-solid-900.ttf │ ├── fa-solid-900.woff │ ├── fa-solid-900.woff2 │ ├── flaticon.eot │ ├── flaticon.ttf │ ├── flaticon.woff │ ├── flaticon.woff2 │ ├── materialdesignicons-webfont.eot │ ├── materialdesignicons-webfont.ttf │ ├── materialdesignicons-webfont.woff │ └── materialdesignicons-webfont.woff2 ├── image │ ├── chevron-down.svg │ ├── hello │ └── profile-cover.jpg ├── js │ ├── animated-headline.js │ ├── apexcharts.min.js │ ├── bootstrap.bundle.min.js │ ├── bootstrap.bundle.min.js.map │ ├── bootstrap.min.js │ ├── dataTables.bootstrap4.min.js │ ├── datatables-demo.js │ ├── dropzone.min.js │ ├── echarts.js │ ├── feather.min.js │ ├── hello │ ├── jquery-1.12.4.min.js │ ├── jquery.counterup.min.js │ ├── jquery.dataTables.min.js │ ├── jquery.easing.min.js │ ├── jquery.meanmenu.min.js │ ├── jquery.min.js │ ├── jquery.nice-select.min.js │ ├── jquery.slimscroll.min.js │ ├── main.js │ ├── modernizr-3.5.0.min.js │ ├── one-page-nav-min.js │ ├── pie-alignTo.html │ ├── popper.min.js │ ├── prism-copy-to-clipboard.min.js │ ├── prism-toolbar.min.js │ ├── prism.js │ ├── sb-admin-2.min.js │ ├── slick.min.js │ ├── theme.min.js │ ├── waypoints.min.js │ └── wow.min.js └── picture │ ├── 404-error-img.png │ ├── 404.png │ ├── 404_1.png │ ├── 4by3.jpg │ ├── blog-img-1.jpg │ ├── brand-logo.png │ ├── checked-mark.svg │ ├── default-classic.svg │ ├── dropbox-logo.svg │ ├── github-logo.svg │ ├── happy.png │ ├── head │ ├── head1.png │ ├── head2.png │ ├── head3.png │ ├── head4.png │ ├── head5.png │ ├── head6.png │ ├── head7.png │ ├── head8.png │ └── head9.png │ ├── hello │ ├── image.jpg │ ├── layers-logo.svg │ ├── logo.svg │ ├── mastercard.svg │ ├── placeholder-4by3.svg │ ├── placeholder-img.jpg │ ├── profile-cover.jpg │ ├── slack-logo.svg │ ├── 振奋.png │ ├── 振奋.svg │ ├── 振奋1.png │ ├── 搜索无结果.png │ ├── 无数据.png │ ├── 无权限.png │ ├── 无网络.png │ ├── 暂无搜索内容.png │ ├── 暂无数据.png │ ├── 暂无权限.png │ ├── 暂无消息.png │ ├── 正在建设中.png │ ├── 电影随心配.png │ ├── 空空如也.png │ └── 网站维修中.png ├── crawler.py ├── images ├── image-20231231130803160.png ├── image-20231231130817116.png ├── image-20231231130846322.png ├── image-20231231130915116.png ├── image-20231231130950957.png ├── image-20231231131002369.png ├── image-20231231131022011.png ├── image-20231231131045373.png ├── image-20231231131056304.png ├── image-20231231131109680.png └── image-20231231131119597.png ├── main.py ├── requirements.txt ├── templates ├── act_dir_t.html ├── error.html ├── home.html ├── home1.html ├── home_new.html ├── login.html ├── map_t.html ├── movieList.html ├── rate_t.html ├── register.html ├── time_t.html └── type_t.html ├── utils ├── __pycache__ │ ├── getActDir_t.cpython-310.pyc │ ├── getActDir_t.cpython-39.pyc │ ├── getHomeData.cpython-310.pyc │ ├── getHomeData.cpython-39.pyc │ ├── getMapData.cpython-310.pyc │ ├── getRate_t.cpython-310.pyc │ ├── getRate_t.cpython-39.pyc │ ├── getTime_t.cpython-310.pyc │ ├── getTime_t.cpython-39.pyc │ ├── getTypeData.cpython-310.pyc │ ├── gethome.cpython-310.pyc │ ├── gethome.cpython-39.pyc │ ├── getmap.cpython-310.pyc │ ├── getmap.cpython-39.pyc │ ├── gettype.cpython-310.pyc │ ├── gettype.cpython-39.pyc │ ├── query.cpython-310.pyc │ ├── query.cpython-39.pyc │ ├── util.cpython-310.pyc │ └── util.cpython-39.pyc ├── getActDir_t.py ├── getHomeData.py ├── getMapData.py ├── getRate_t.py ├── getTime_t.py ├── getTypeData.py ├── gethome.py ├── getmap.py ├── gettype.py ├── query.py ├── random_select.py └── util.py └── 豆瓣电影数据.xls /README.md: -------------------------------------------------------------------------------- 1 | 2 | ## 项目背景 3 | 4 | ### 目的 5 | 6 | 作为深度纠结症患者,面对琳琅满目的选择,我们常常不知从何下手,每次选择电影的时间往往比看电影的时间还长。并且由于惯性思维,总是会选择自己熟悉的类型的影片,导致虽然不少电影已经看过四五遍,但是仍有许多电影从来都没有了解过。 7 | 8 | 因此,我们搭建了这个平台,让您摆脱选择困难症的困扰,为您带来全新的观影体验。 9 | 10 | ### 功能 11 | 12 | 我们的算法不仅会为您推荐那些备受瞩目的热门电影,更会挖掘隐藏的珍藏佳作,让您有机会发现您可能错过的宝藏片单。我们涵盖了各种类型的电影,从悬疑、科幻到传记和艺术片,无论您喜欢怎样类型的电影,我们都会为您找到最适合您口味的影片。 13 | 14 | ## 技术栈 15 | 16 | ### 技术总结 17 | 18 | | | 主要功能 | 19 | | ------------------------- | ------------------------------------ | 20 | | BeautifulSoup、Re模块 | 爬取电影榜单,提取数据 | 21 | | MySQL | 存储并查找爬取到的数据和用户账户信息 | 22 | | Flask框架 | 定义视图函数并与URL绑定、处理请求 | 23 | | Echarts库、 Bootstrap框架 | 实现数据可视化 | 24 | 25 | ### 链接 26 | 27 | 1. [Bootstrap Admin Dashboard Templates - Start Bootstrap](https://startbootstrap.com/templates/admin-dashboard) 28 | 2. [Examples - Apache ECharts](https://echarts.apache.org/examples/zh/index.html) 29 | 30 | ## 项目预览 31 | 32 | - 登陆/注册界面 33 | 34 | ![image-20231231130803160](./images/image-20231231130803160.png) 35 | 36 | ![image-20231231130817116](./images/image-20231231130817116.png) 37 | 38 | - 网页主页--随机推荐电影界面 39 | 40 | ![image-20231231130846322](./images/image-20231231130846322.png) 41 | 42 | ![image-20231231130915116](./images/image-20231231130915116.png) 43 | 44 | - 电影信息详情页 45 | 46 | ![image-20231231130950957](./images/image-20231231130950957.png) 47 | 48 | ![image-20231231131002369](./images/image-20231231131002369.png) 49 | 50 | - 可视化部分 51 | 52 | ![image-20231231131022011](./images/image-20231231131022011.png) 53 | 54 | ![image-20231231131045373](./images/image-20231231131045373.png) 55 | 56 | ![image-20231231131056304](./images/image-20231231131056304.png) 57 | 58 | ![image-20231231131109680](./images/image-20231231131109680.png) 59 | 60 | ![image-20231231131119597](./images/image-20231231131119597.png) 61 | -------------------------------------------------------------------------------- /Static/css/dataTables.bootstrap4.min.css: -------------------------------------------------------------------------------- 1 | /* 基本表格样式 */ 2 | table.dataTable { 3 | clear: both; 4 | margin-top: 6px !important; 5 | margin-bottom: 6px !important; 6 | max-width: none !important; 7 | border-collapse: separate !important; 8 | border-spacing: 0; 9 | } 10 | 11 | /* 单元格盒模型 */ 12 | table.dataTable td, 13 | table.dataTable th { 14 | -webkit-box-sizing: content-box; 15 | box-sizing: content-box; 16 | } 17 | 18 | /* 空数据单元格样式 */ 19 | table.dataTable td.dataTables_empty, 20 | table.dataTable th.dataTables_empty { 21 | text-align: center; 22 | } 23 | 24 | /* 不换行样式 */ 25 | table.dataTable.nowrap th, 26 | table.dataTable.nowrap td { 27 | white-space: nowrap; 28 | } 29 | 30 | /* 数据表长度标签样式 */ 31 | div.dataTables_wrapper div.dataTables_length label { 32 | font-weight: normal; 33 | text-align: left; 34 | white-space: nowrap; 35 | } 36 | 37 | div.dataTables_wrapper div.dataTables_length select{ 38 | display:inline-block 39 | } 40 | 41 | /* 数据表过滤样式 */ 42 | div.dataTables_wrapper div.dataTables_filter { 43 | text-align: right; 44 | } 45 | div.dataTables_wrapper div.dataTables_filter input{ 46 | margin-left:0.5em; 47 | display:inline-block; 48 | width:auto 49 | } 50 | /* 数据表信息样式 */ 51 | div.dataTables_wrapper div.dataTables_info { 52 | padding-top: 0.85em; 53 | white-space: nowrap; 54 | } 55 | 56 | /* 数据表分页样式 */ 57 | div.dataTables_wrapper div.dataTables_paginate { 58 | margin: 0; 59 | white-space: nowrap; 60 | text-align: right; 61 | } 62 | div.dataTables_wrapper div.dataTables_paginate ul.pagination{ 63 | margin:2px 0; 64 | white-space:nowrap; 65 | justify-content:flex-end 66 | } 67 | /* 数据表处理样式 */ 68 | div.dataTables_wrapper div.dataTables_processing { 69 | position: absolute; 70 | top: 50%; 71 | left: 50%; 72 | width: 200px; 73 | margin-left: -100px; 74 | margin-top: -26px; 75 | text-align: center; 76 | padding: 1em 0; 77 | } 78 | 79 | table.dataTable thead>tr>th.sorting_asc, 80 | table.dataTable thead>tr>th.sorting_desc, 81 | table.dataTable thead>tr>th.sorting, 82 | table.dataTable thead>tr>td.sorting_asc, 83 | table.dataTable thead>tr>td.sorting_desc, 84 | table.dataTable thead>tr>td.sorting { 85 | padding-right: 30px; 86 | } 87 | 88 | table.dataTable thead>tr>th:active, 89 | table.dataTable thead>tr>td:active { 90 | outline: none; 91 | } 92 | 93 | table.dataTable thead .sorting, 94 | table.dataTable thead .sorting_asc, 95 | table.dataTable thead .sorting_desc, 96 | table.dataTable thead .sorting_asc_disabled, 97 | table.dataTable thead .sorting_desc_disabled { 98 | cursor: pointer; 99 | position: relative; 100 | } 101 | 102 | table.dataTable thead .sorting:before, 103 | table.dataTable thead .sorting:after, 104 | table.dataTable thead .sorting_asc:before, 105 | table.dataTable thead .sorting_asc:after, 106 | table.dataTable thead .sorting_desc:before, 107 | table.dataTable thead .sorting_desc:after, 108 | table.dataTable thead .sorting_asc_disabled:before, 109 | table.dataTable thead .sorting_asc_disabled:after, 110 | table.dataTable thead .sorting_desc_disabled:before, 111 | table.dataTable thead .sorting_desc_disabled:after { 112 | position: absolute; 113 | bottom: 0.9em; 114 | display: block; 115 | opacity: 0.3; 116 | } 117 | 118 | table.dataTable thead .sorting:before, 119 | table.dataTable thead .sorting_asc:before, 120 | table.dataTable thead .sorting_desc:before, 121 | table.dataTable thead .sorting_asc_disabled:before, 122 | table.dataTable thead .sorting_desc_disabled:before { 123 | right: 1em; 124 | content: "\2191"; 125 | } 126 | 127 | table.dataTable thead .sorting:after, 128 | table.dataTable thead .sorting_asc:after, 129 | table.dataTable thead .sorting_desc:after, 130 | table.dataTable thead .sorting_asc_disabled:after, 131 | table.dataTable thead .sorting_desc_disabled:after { 132 | right: 0.5em; 133 | content: "\2193"; 134 | } 135 | 136 | table.dataTable thead .sorting_asc:before, 137 | table.dataTable thead .sorting_desc:after { 138 | opacity: 1; 139 | } 140 | 141 | table.dataTable thead .sorting_asc_disabled:before, 142 | table.dataTable thead .sorting_desc_disabled:after { 143 | opacity: 0; 144 | } 145 | 146 | div.dataTables_scrollHead table.dataTable { 147 | margin-bottom: 0 !important; 148 | } 149 | 150 | div.dataTables_scrollBody table { 151 | border-top: none; 152 | margin-top: 0 !important; 153 | margin-bottom: 0 !important; 154 | } 155 | 156 | div.dataTables_scrollBody table thead .sorting:before, 157 | div.dataTables_scrollBody table thead .sorting_asc:before, 158 | div.dataTables_scrollBody table thead .sorting_desc:before, 159 | div.dataTables_scrollBody table thead .sorting:after, 160 | div.dataTables_scrollBody table thead .sorting_asc:after, 161 | div.dataTables_scrollBody table thead .sorting_desc:after { 162 | display: none; 163 | } 164 | 165 | div.dataTables_scrollBody table tbody tr:first-child th, 166 | div.dataTables_scrollBody table tbody tr:first-child td { 167 | border-top: none; 168 | } 169 | 170 | div.dataTables_scrollFoot > .dataTables_scrollFootInner { 171 | box-sizing: content-box; 172 | } 173 | 174 | div.dataTables_scrollFoot > .dataTables_scrollFootInner > table { 175 | margin-top: 0 !important; 176 | border-top: none; 177 | } 178 | 179 | 180 | /* 响应式样式 */ 181 | @media screen and (max-width: 767px) { 182 | div.dataTables_wrapper div.dataTables_length, 183 | div.dataTables_wrapper div.dataTables_filter, 184 | div.dataTables_wrapper div.dataTables_info, 185 | div.dataTables_wrapper div.dataTables_paginate { 186 | text-align: center; 187 | } 188 | } 189 | 190 | table.dataTable.table-sm > thead > tr > th { 191 | padding-right: 20px; 192 | } 193 | 194 | table.dataTable.table-sm .sorting:before, 195 | table.dataTable.table-sm .sorting_asc:before, 196 | table.dataTable.table-sm .sorting_desc:before { 197 | top: 5px; 198 | right: 0.85em; 199 | } 200 | 201 | table.dataTable.table-sm .sorting:after, 202 | table.dataTable.table-sm .sorting_asc:after, 203 | table.dataTable.table-sm .sorting_desc:after { 204 | top: 5px; 205 | } 206 | 207 | table.table-bordered.dataTable th, 208 | table.table-bordered.dataTable td { 209 | border-left-width: 0; 210 | } 211 | 212 | table.table-bordered.dataTable th:last-child, 213 | table.table-bordered.dataTable th:last-child, 214 | table.table-bordered.dataTable td:last-child, 215 | table.table-bordered.dataTable td:last-child { 216 | border-right-width: 0; 217 | } 218 | 219 | table.table-bordered.dataTable tbody th, 220 | table.table-bordered.dataTable tbody td { 221 | border-bottom-width: 0; 222 | } 223 | 224 | div.dataTables_scrollHead table.table-bordered { 225 | border-bottom-width: 0; 226 | } 227 | 228 | div.table-responsive > div.dataTables_wrapper > div.row { 229 | margin: 0; 230 | } 231 | 232 | div.table-responsive > div.dataTables_wrapper > div.row > div[class^="col-"]:first-child { 233 | padding-left: 0; 234 | } 235 | 236 | div.table-responsive > div.dataTables_wrapper > div.row > div[class^="col-"]:last-child { 237 | padding-right: 0; 238 | } 239 | -------------------------------------------------------------------------------- /Static/css/flaticon.css: -------------------------------------------------------------------------------- 1 | @font-face { 2 | font-family: "flaticon"; 3 | src: url("../font/flaticon.ttf") format("truetype"), 4 | url("../font/flaticon.woff") format("woff"), 5 | url("../font/flaticon.woff2") format("woff2"), 6 | url("../font/flaticon.eot") format("embedded-opentype"), 7 | url("https://dynamicproductionhousebd.com/homeland-demo-preview/fonts/flaticon/flaticon.svg?0781a13781b7ee6919271ada33cadf81") format("svg"); 8 | } 9 | 10 | i[class^="flaticon-"]:before, i[class*=" flaticon-"]:before { 11 | font-family: flaticon !important; 12 | font-style: normal; 13 | font-weight: normal !important; 14 | font-variant: normal; 15 | text-transform: none; 16 | line-height: 1; 17 | -webkit-font-smoothing: antialiased; 18 | -moz-osx-font-smoothing: grayscale; 19 | } 20 | 21 | .flaticon-plus:before { 22 | content: "\f101"; 23 | } 24 | .flaticon-placeholder:before { 25 | content: "\f102"; 26 | } 27 | .flaticon-apartments-prices:before { 28 | content: "\f103"; 29 | } 30 | .flaticon-apartments:before { 31 | content: "\f104"; 32 | } 33 | .flaticon-protection-shield-with-a-check-mark:before { 34 | content: "\f105"; 35 | } 36 | .flaticon-planet-earth:before { 37 | content: "\f106"; 38 | } 39 | .flaticon-building:before { 40 | content: "\f107"; 41 | } 42 | .flaticon-pin:before { 43 | content: "\f108"; 44 | } 45 | .flaticon-home:before { 46 | content: "\f109"; 47 | } 48 | .flaticon-house:before { 49 | content: "\f10a"; 50 | } 51 | .flaticon-infinity:before { 52 | content: "\f10b"; 53 | } 54 | .flaticon-quotation-marks:before { 55 | content: "\f10c"; 56 | } 57 | -------------------------------------------------------------------------------- /Static/css/meanmenu.css: -------------------------------------------------------------------------------- 1 | 2 | /*! ####################################################################### 3 | 4 | MeanMenu 2.0.7 5 | -------- 6 | 7 | To be used with jquery.meanmenu.js by Chris Wharton (http://www.meanthemes.com/plugins/meanmenu/) 8 | 9 | ####################################################################### */ 10 | 11 | /* hide the link until viewport size is reached */ 12 | a.meanmenu-reveal { 13 | display: none; 14 | } 15 | 16 | /* when under viewport size, .mean-container is added to body */ 17 | .mean-container .mean-bar { 18 | background: rgba(0, 0, 0, 0) none repeat scroll 0 0; 19 | position: relative; 20 | width: 100%; 21 | z-index: 99; 22 | } 23 | 24 | .mean-container a.meanmenu-reveal { 25 | border: 1px solid #444; 26 | color: #444; 27 | cursor: pointer; 28 | display: block; 29 | font-family: Arial,Helvetica,sans-serif; 30 | font-size: 1px; 31 | font-weight: 700; 32 | height: 22px; 33 | line-height: 22px; 34 | margin-top: -32px; 35 | padding: 8px 9px; 36 | position: absolute; 37 | right: 0; 38 | text-decoration: none; 39 | top: 20px; 40 | width: 22px; 41 | } 42 | .mean-container a.meanmenu-reveal span { 43 | background: #444 none repeat scroll 0 0; 44 | display: block; 45 | height: 3px; 46 | margin-top: 3px; 47 | } 48 | 49 | .mean-container .mean-nav { 50 | background: #0c1923 none repeat scroll 0 0; 51 | float: left; 52 | margin-top: 15px; 53 | width: 100%; 54 | } 55 | 56 | .mean-container .mean-nav ul { 57 | padding: 0; 58 | margin: 0; 59 | width: 100%; 60 | list-style-type: none; 61 | z-index: 9; 62 | } 63 | 64 | .mean-container .mean-nav ul li { 65 | position: relative; 66 | float: left; 67 | width: 100%; 68 | } 69 | 70 | .mean-container .mean-nav ul li a { 71 | border-top: 1px solid rgba(255, 255, 255, 0.5); 72 | color: #fff; 73 | display: block; 74 | float: left; 75 | margin: 0; 76 | padding: 10px 5%; 77 | text-align: left; 78 | text-decoration: none; 79 | text-transform: uppercase; 80 | width: 90%; 81 | font-size: 14px; 82 | } 83 | 84 | .mean-container .mean-nav ul li li a { 85 | border-top: 1px solid rgba(255, 255, 255, 0.25); 86 | opacity: 0.75; 87 | padding: 10px 10%; 88 | text-shadow: none; 89 | visibility: visible; 90 | width: 80%; 91 | } 92 | 93 | .mean-container .mean-nav ul li.mean-last a { 94 | border-bottom: none; 95 | margin-bottom: 0; 96 | } 97 | 98 | .mean-container .mean-nav ul li li li a { 99 | width: 70%; 100 | padding: 1em 15%; 101 | } 102 | 103 | .mean-container .mean-nav ul li li li li a { 104 | width: 60%; 105 | padding: 1em 20%; 106 | } 107 | 108 | .mean-container .mean-nav ul li li li li li a { 109 | width: 50%; 110 | padding: 1em 25%; 111 | } 112 | 113 | .mean-container .mean-nav ul li a:hover { 114 | background: #252525; 115 | background: rgba(255,255,255,0.1); 116 | } 117 | 118 | .mean-container .mean-nav ul li a.mean-expand { 119 | -moz-border-bottom-colors: none; 120 | -moz-border-left-colors: none; 121 | -moz-border-right-colors: none; 122 | -moz-border-top-colors: none; 123 | background: rgba(255, 255, 255, 0.1) none repeat scroll 0 0; 124 | border-color: currentcolor currentcolor rgba(255, 255, 255, 0.2) rgba(255, 255, 255, 0.4); 125 | border-image: none; 126 | border-style: none none solid solid; 127 | border-width: medium medium 1px 1px; 128 | font-weight: 700; 129 | height: 27px; 130 | margin-top: 1px; 131 | padding: 5px 12px; 132 | position: absolute; 133 | right: 0; 134 | text-align: center; 135 | top: 0; 136 | width: 26px; 137 | z-index: 2; 138 | } 139 | 140 | .mean-container .mean-nav ul li a.mean-expand:hover { 141 | background: rgba(0,0,0,0.9); 142 | } 143 | 144 | .mean-container .mean-push { 145 | float: left; 146 | width: 100%; 147 | padding: 0; 148 | margin: 0; 149 | clear: both; 150 | } 151 | 152 | .mean-nav .wrapper { 153 | width: 100%; 154 | padding: 0; 155 | margin: 0; 156 | } 157 | 158 | /* Fix for box sizing on Foundation Framework etc. */ 159 | .mean-container .mean-bar, .mean-container .mean-bar * { 160 | -webkit-box-sizing: content-box; 161 | -moz-box-sizing: content-box; 162 | box-sizing: content-box; 163 | } 164 | 165 | 166 | .mean-remove { 167 | display: none !important; 168 | } 169 | 170 | 171 | .transparent-header .mean-container a.meanmenu-reveal { 172 | border: 1px solid #fff; 173 | color: #fff; 174 | } 175 | .transparent-header .mean-container a.meanmenu-reveal span { 176 | background: #fff; 177 | } 178 | 179 | .header-2 .mean-container a.meanmenu-reveal { 180 | border: 1px solid #fff; 181 | color: #fff; 182 | } 183 | .header-2 .mean-container a.meanmenu-reveal span { 184 | background: #fff; 185 | } -------------------------------------------------------------------------------- /Static/css/nice-select.css: -------------------------------------------------------------------------------- 1 | .nice-select { 2 | -webkit-tap-highlight-color: transparent; 3 | background-color: #fff; 4 | border-radius: 5px; 5 | border: solid 1px #e8e8e8; 6 | box-sizing: border-box; 7 | clear: both; 8 | cursor: pointer; 9 | display: block; 10 | float: left; 11 | font-family: inherit; 12 | font-size: 14px; 13 | font-weight: normal; 14 | height: 42px; 15 | line-height: 40px; 16 | outline: none; 17 | padding-left: 18px; 18 | padding-right: 30px; 19 | position: relative; 20 | text-align: left !important; 21 | -webkit-transition: all 0.2s ease-in-out; 22 | transition: all 0.2s ease-in-out; 23 | -webkit-user-select: none; 24 | -moz-user-select: none; 25 | -ms-user-select: none; 26 | user-select: none; 27 | white-space: nowrap; 28 | width: auto; } 29 | .nice-select:hover { 30 | border-color: #dbdbdb; } 31 | .nice-select:active, .nice-select.open, .nice-select:focus { 32 | border-color: #999; } 33 | .nice-select:after { 34 | border-bottom: 2px solid #999; 35 | border-right: 2px solid #999; 36 | content: ''; 37 | display: block; 38 | height: 5px; 39 | margin-top: -4px; 40 | pointer-events: none; 41 | position: absolute; 42 | right: 12px; 43 | top: 50%; 44 | -webkit-transform-origin: 66% 66%; 45 | -ms-transform-origin: 66% 66%; 46 | transform-origin: 66% 66%; 47 | -webkit-transform: rotate(45deg); 48 | -ms-transform: rotate(45deg); 49 | transform: rotate(45deg); 50 | -webkit-transition: all 0.15s ease-in-out; 51 | transition: all 0.15s ease-in-out; 52 | width: 5px; } 53 | .nice-select.open:after { 54 | -webkit-transform: rotate(-135deg); 55 | -ms-transform: rotate(-135deg); 56 | transform: rotate(-135deg); } 57 | .nice-select.open .list { 58 | opacity: 1; 59 | pointer-events: auto; 60 | -webkit-transform: scale(1) translateY(0); 61 | -ms-transform: scale(1) translateY(0); 62 | transform: scale(1) translateY(0); } 63 | .nice-select.disabled { 64 | border-color: #ededed; 65 | color: #999; 66 | pointer-events: none; } 67 | .nice-select.disabled:after { 68 | border-color: #cccccc; } 69 | .nice-select.wide { 70 | width: 100%; } 71 | .nice-select.wide .list { 72 | left: 0 !important; 73 | right: 0 !important; } 74 | .nice-select.right { 75 | float: right; } 76 | .nice-select.right .list { 77 | left: auto; 78 | right: 0; } 79 | .nice-select.small { 80 | font-size: 12px; 81 | height: 36px; 82 | line-height: 34px; } 83 | .nice-select.small:after { 84 | height: 4px; 85 | width: 4px; } 86 | .nice-select.small .option { 87 | line-height: 34px; 88 | min-height: 34px; } 89 | .nice-select .list { 90 | background-color: #fff; 91 | border-radius: 5px; 92 | box-shadow: 0 0 0 1px rgba(68, 68, 68, 0.11); 93 | box-sizing: border-box; 94 | margin-top: 4px; 95 | opacity: 0; 96 | overflow: hidden; 97 | padding: 0; 98 | pointer-events: none; 99 | position: absolute; 100 | top: 100%; 101 | left: 0; 102 | -webkit-transform-origin: 50% 0; 103 | -ms-transform-origin: 50% 0; 104 | transform-origin: 50% 0; 105 | -webkit-transform: scale(0.75) translateY(-21px); 106 | -ms-transform: scale(0.75) translateY(-21px); 107 | transform: scale(0.75) translateY(-21px); 108 | -webkit-transition: all 0.2s cubic-bezier(0.5, 0, 0, 1.25), opacity 0.15s ease-out; 109 | transition: all 0.2s cubic-bezier(0.5, 0, 0, 1.25), opacity 0.15s ease-out; 110 | z-index: 9; } 111 | .nice-select .list:hover .option:not(:hover) { 112 | background-color: transparent !important; } 113 | .nice-select .option { 114 | cursor: pointer; 115 | font-weight: 400; 116 | line-height: 40px; 117 | list-style: none; 118 | min-height: 40px; 119 | outline: none; 120 | padding-left: 18px; 121 | padding-right: 29px; 122 | text-align: left; 123 | -webkit-transition: all 0.2s; 124 | transition: all 0.2s; } 125 | .nice-select .option:hover, .nice-select .option.focus, .nice-select .option.selected.focus { 126 | background-color: #f6f6f6; } 127 | .nice-select .option.selected { 128 | font-weight: bold; } 129 | .nice-select .option.disabled { 130 | background-color: transparent; 131 | color: #999; 132 | cursor: default; } 133 | 134 | .no-csspointerevents .nice-select .list { 135 | display: none; } 136 | 137 | .no-csspointerevents .nice-select.open .list { 138 | display: block; } 139 | -------------------------------------------------------------------------------- /Static/css/prism-okaidia.css: -------------------------------------------------------------------------------- 1 | /** 2 | * okaidia theme for JavaScript, CSS and HTML 3 | * Loosely based on Monokai textmate theme by http://www.monokai.nl/ 4 | * @author ocodia 5 | */ 6 | 7 | code[class*="language-"], 8 | pre[class*="language-"] { 9 | color: #f8f8f2; 10 | background: none; 11 | text-shadow: 0 1px rgba(0, 0, 0, 0.3); 12 | font-family: Consolas, Monaco, 'Andale Mono', 'Ubuntu Mono', monospace; 13 | font-size: 1em; 14 | text-align: left; 15 | white-space: pre; 16 | word-spacing: normal; 17 | word-break: normal; 18 | word-wrap: normal; 19 | line-height: 1.5; 20 | 21 | -moz-tab-size: 4; 22 | -o-tab-size: 4; 23 | tab-size: 4; 24 | 25 | -webkit-hyphens: none; 26 | -moz-hyphens: none; 27 | -ms-hyphens: none; 28 | hyphens: none; 29 | } 30 | 31 | /* Code blocks */ 32 | pre[class*="language-"] { 33 | padding: 1em; 34 | margin: .5em 0; 35 | overflow: auto; 36 | border-radius: 0.3em; 37 | } 38 | 39 | :not(pre) > code[class*="language-"], 40 | pre[class*="language-"] { 41 | background: #272822; 42 | } 43 | 44 | /* Inline code */ 45 | :not(pre) > code[class*="language-"] { 46 | padding: .1em; 47 | border-radius: .3em; 48 | white-space: normal; 49 | } 50 | 51 | .token.comment, 52 | .token.prolog, 53 | .token.doctype, 54 | .token.cdata { 55 | color: #8292a2; 56 | } 57 | 58 | .token.punctuation { 59 | color: #f8f8f2; 60 | } 61 | 62 | .token.namespace { 63 | opacity: .7; 64 | } 65 | 66 | .token.property, 67 | .token.tag, 68 | .token.constant, 69 | .token.symbol, 70 | .token.deleted { 71 | color: #f92672; 72 | } 73 | 74 | .token.boolean, 75 | .token.number { 76 | color: #ae81ff; 77 | } 78 | 79 | .token.selector, 80 | .token.attr-name, 81 | .token.string, 82 | .token.char, 83 | .token.builtin, 84 | .token.inserted { 85 | color: #a6e22e; 86 | } 87 | 88 | .token.operator, 89 | .token.entity, 90 | .token.url, 91 | .language-css .token.string, 92 | .style .token.string, 93 | .token.variable { 94 | color: #f8f8f2; 95 | } 96 | 97 | .token.atrule, 98 | .token.attr-value, 99 | .token.function, 100 | .token.class-name { 101 | color: #e6db74; 102 | } 103 | 104 | .token.keyword { 105 | color: #66d9ef; 106 | } 107 | 108 | .token.regex, 109 | .token.important { 110 | color: #fd971f; 111 | } 112 | 113 | .token.important, 114 | .token.bold { 115 | font-weight: bold; 116 | } 117 | .token.italic { 118 | font-style: italic; 119 | } 120 | 121 | .token.entity { 122 | cursor: help; 123 | } 124 | -------------------------------------------------------------------------------- /Static/css/responsive.css: -------------------------------------------------------------------------------- 1 | /* Normal desktop :992px. */ 2 | @media (min-width: 992px) and (max-width: 1200px) { 3 | .main-menu nav ul li a { 4 | padding: 20px 15px; 5 | } 6 | .why-choose-us-area { 7 | padding-left: 65px; 8 | padding-right: 65px; 9 | } 10 | .single-choose-us .choose-us-content h4 { 11 | font-size: 16px; 12 | } 13 | .looking-content h2 { 14 | font-size: 30px; 15 | padding-bottom: 10px; 16 | } 17 | .looking-content p { 18 | font-size: 15px; 19 | } 20 | .looking-content-right h4 { 21 | font-size: 18px; 22 | } 23 | .looking-content-right p { 24 | font-size: 14px; 25 | } 26 | .properties-title h2 { 27 | font-size: 32px; 28 | } 29 | .properties-title p { 30 | padding: 0 145px; 31 | padding-bottom: 20px; 32 | } 33 | .single-counter span { 34 | font-size: 30px; 35 | } 36 | .single-counter p { 37 | font-size: 18px; 38 | } 39 | .news-title h2 { 40 | font-size: 32px; 41 | } 42 | .news-content h4 { 43 | font-size: 18px; 44 | } 45 | .news-content p { 46 | font-size: 14px; 47 | color: #111111; 48 | text-align: justify; 49 | } 50 | .agent-title h2 { 51 | font-size: 32px; 52 | } 53 | .footer-top-area { 54 | padding-bottom: 60px; 55 | } 56 | .single-footer p { 57 | line-height: 24px; 58 | padding-bottom: 0; 59 | text-align: justify; 60 | } 61 | .footer-address ul li { 62 | margin: 7px 0; 63 | } 64 | } 65 | 66 | /* Tablet desktop :768px. */ 67 | @media (min-width: 768px) and (max-width: 991px) { 68 | .header-bottom-area { 69 | padding-bottom: 20px; 70 | } 71 | .sign-in-btn { 72 | margin-right: 80px; 73 | } 74 | .slider-area { 75 | padding-top: 70px; 76 | padding-bottom: 80px; 77 | } 78 | .slider-content h1 { 79 | font-size: 35px; 80 | } 81 | .looking-content h2 { 82 | font-size: 25px; 83 | padding-top: 31px; 84 | } 85 | .looking-content p { 86 | font-size: 14px; 87 | text-align: justify; 88 | line-height: 24px; 89 | padding-bottom: 2px; 90 | } 91 | .looking-content-right h4 { 92 | font-size: 18px; 93 | } 94 | .looking-content-right p { 95 | font-size: 14px; 96 | } 97 | .properties-title h2 { 98 | font-size: 30px; 99 | } 100 | .properties-title p { 101 | font-size: 15px; 102 | padding: 0 40px; 103 | padding-bottom: 20px; 104 | } 105 | .properties-info h4 { 106 | font-size: 16px; 107 | } 108 | .properties-info p { 109 | font-size: 12px; 110 | } 111 | .single-counter span { 112 | font-size: 30px; 113 | } 114 | .single-counter p { 115 | font-size: 16px; 116 | letter-spacing: 0px; 117 | line-height: 30px; 118 | } 119 | .news-title h2 { 120 | font-size: 30px; 121 | } 122 | .news-content p { 123 | font-size: 15px; 124 | line-height: 24px; 125 | } 126 | .news-item-bottom a { 127 | font-size: 14px; 128 | } 129 | .agent-title h2 { 130 | font-size: 30px; 131 | padding-bottom: 10px; 132 | } 133 | .single-agent p { 134 | text-align: center; 135 | } 136 | .single-footer h4 { 137 | padding-bottom: 12px; 138 | } 139 | .single-footer p { 140 | font-size: 14px; 141 | line-height: 24px; 142 | padding-bottom: 0; 143 | } 144 | .footer-address ul li { 145 | font-size: 14px; 146 | margin: 5px 0; 147 | } 148 | .footer-social a { 149 | font-size: 12px; 150 | width: 34px; 151 | height: 34px; 152 | line-height: 36px; 153 | } 154 | .single-footer .footer-menu ul li a { 155 | font-size: 14px; 156 | } 157 | .copyright p { 158 | font-size: 14px; 159 | } 160 | } 161 | 162 | /* small mobile :320px. */ 163 | @media (max-width: 767px) { 164 | .language ul li > a { 165 | font-size: 12px; 166 | } 167 | .header-top-social { 168 | text-align: right; 169 | } 170 | .header-top-social a { 171 | font-size: 12px; 172 | } 173 | .header-location { 174 | text-align: left !important; 175 | } 176 | .header-location a { 177 | font-size: 12px; 178 | } 179 | .header-mail a { 180 | font-size: 12px; 181 | } 182 | .header-bottom-area { 183 | padding: 15px 0; 184 | } 185 | .sticky{ 186 | display: none; 187 | } 188 | .logo { 189 | text-align: center; 190 | padding-bottom: 20px; 191 | } 192 | .sign-in-btn { 193 | float: left !important; 194 | } 195 | .sign-in-btn a { 196 | font-size: 12px; 197 | } 198 | .mean-container .mean-nav ul li a { 199 | font-size: 12px; 200 | } 201 | .slider-area { 202 | padding-top: 38px; 203 | padding-bottom: 50px; 204 | } 205 | .slider-content h1 { 206 | font-size: 14px; 207 | padding-bottom: 2px; 208 | } 209 | .slider-content p { 210 | font-size: 12px; 211 | padding-bottom: 10px; 212 | } 213 | .search form { 214 | display: block; 215 | } 216 | .single-search .nice-select { 217 | margin-bottom: 30px; 218 | } 219 | .why-choose-us-area { 220 | padding-top: 50px; 221 | padding-bottom: 30px; 222 | } 223 | .why-choose-us-title h2 { 224 | font-size: 16px; 225 | } 226 | .why-choose-us-title h3 { 227 | font-size: 22px; 228 | } 229 | .single-choose-us .choose-us-content h4 { 230 | font-size: 18px; 231 | } 232 | .single-choose-us .choose-us-content p { 233 | font-size: 14px; 234 | } 235 | .looking-for-area { 236 | padding-top: 60px; 237 | padding-bottom: 40px; 238 | } 239 | .looking-content h2 { 240 | font-size: 18px; 241 | padding-top: 0; 242 | text-align: center; 243 | padding-bottom: 7px; 244 | } 245 | .looking-content p { 246 | font-size: 14px; 247 | padding-bottom: 10px; 248 | text-align: justify; 249 | } 250 | .theme-btn a { 251 | font-size: 13px; 252 | margin-bottom: 40px; 253 | } 254 | .looking-content-right h4 { 255 | font-size: 16px; 256 | } 257 | .looking-content-right p { 258 | font-size: 14px; 259 | } 260 | .properties-title h2 { 261 | font-size: 18px; 262 | } 263 | .properties-title p { 264 | font-size: 14px; 265 | padding: 0 10px; 266 | padding-bottom: 25px; 267 | text-align: justify; 268 | } 269 | .properties-info h4 { 270 | font-size: 14px; 271 | } 272 | .properties-info p { 273 | font-size: 11px; 274 | } 275 | .single-counter span { 276 | font-size: 22px; 277 | } 278 | .single-counter p { 279 | font-size: 15px; 280 | letter-spacing: 0; 281 | line-height: 24px; 282 | } 283 | .news-title h4 { 284 | font-size: 15px; 285 | } 286 | .news-title h2 { 287 | font-size: 22px; 288 | } 289 | .news-content h4 { 290 | font-size: 16px; 291 | } 292 | .news-content p { 293 | font-size: 13px; 294 | text-align: justify; 295 | } 296 | .news-item-bottom a { 297 | font-size: 12px; 298 | } 299 | .news-item-bottom .admin p { 300 | font-size: 12px; 301 | } 302 | .agent-bg { 303 | padding: 50px 10px; 304 | } 305 | .agent-title h2 { 306 | font-size: 16px; 307 | padding-bottom: 10px; 308 | } 309 | .single-agent p { 310 | font-size: 13px; 311 | text-align: justify; 312 | } 313 | .footer-top-area { 314 | padding: 0 10px; 315 | } 316 | .single-footer p { 317 | font-size: 13px; 318 | text-align: justify; 319 | } 320 | .footer-address ul li { 321 | font-size: 13px; 322 | } 323 | .footer-social a { 324 | font-size: 13px; 325 | } 326 | .single-footer h4 { 327 | font-size: 18px; 328 | } 329 | .copyright p { 330 | font-size: 12px; 331 | font-weight: 500; 332 | color: #111111; 333 | margin-bottom: 0; 334 | } 335 | 336 | } 337 | 338 | /* Large Mobile :480px. */ 339 | @media only screen and (min-width: 480px) and (max-width: 767px) { 340 | .container {width:450px} 341 | .header-top-social { 342 | text-align: right; 343 | } 344 | .header-location { 345 | text-align: left !important; 346 | } 347 | } -------------------------------------------------------------------------------- /Static/css/slick.css: -------------------------------------------------------------------------------- 1 | /* Slider */ 2 | .slick-slider 3 | { 4 | position: relative; 5 | 6 | display: block; 7 | box-sizing: border-box; 8 | 9 | -webkit-user-select: none; 10 | -moz-user-select: none; 11 | -ms-user-select: none; 12 | user-select: none; 13 | 14 | -webkit-touch-callout: none; 15 | -khtml-user-select: none; 16 | -ms-touch-action: pan-y; 17 | touch-action: pan-y; 18 | -webkit-tap-highlight-color: transparent; 19 | } 20 | 21 | .slick-list 22 | { 23 | position: relative; 24 | 25 | display: block; 26 | overflow: hidden; 27 | 28 | margin: 0; 29 | padding: 0; 30 | } 31 | .slick-list:focus 32 | { 33 | outline: none; 34 | } 35 | .slick-list.dragging 36 | { 37 | cursor: pointer; 38 | cursor: hand; 39 | } 40 | 41 | .slick-slider .slick-track, 42 | .slick-slider .slick-list 43 | { 44 | -webkit-transform: translate3d(0, 0, 0); 45 | -moz-transform: translate3d(0, 0, 0); 46 | -ms-transform: translate3d(0, 0, 0); 47 | -o-transform: translate3d(0, 0, 0); 48 | transform: translate3d(0, 0, 0); 49 | } 50 | 51 | .slick-track 52 | { 53 | position: relative; 54 | top: 0; 55 | left: 0; 56 | 57 | display: block; 58 | margin-left: auto; 59 | margin-right: auto; 60 | } 61 | .slick-track:before, 62 | .slick-track:after 63 | { 64 | display: table; 65 | 66 | content: ''; 67 | } 68 | .slick-track:after 69 | { 70 | clear: both; 71 | } 72 | .slick-loading .slick-track 73 | { 74 | visibility: hidden; 75 | } 76 | 77 | .slick-slide 78 | { 79 | display: none; 80 | float: left; 81 | 82 | height: 100%; 83 | min-height: 1px; 84 | } 85 | [dir='rtl'] .slick-slide 86 | { 87 | float: right; 88 | } 89 | .slick-slide img 90 | { 91 | display: block; 92 | } 93 | .slick-slide.slick-loading img 94 | { 95 | display: none; 96 | } 97 | .slick-slide.dragging img 98 | { 99 | pointer-events: none; 100 | } 101 | .slick-initialized .slick-slide 102 | { 103 | display: block; 104 | } 105 | .slick-loading .slick-slide 106 | { 107 | visibility: hidden; 108 | } 109 | .slick-vertical .slick-slide 110 | { 111 | display: block; 112 | 113 | height: auto; 114 | 115 | border: 1px solid transparent; 116 | } 117 | .slick-arrow.slick-hidden { 118 | display: none; 119 | } 120 | -------------------------------------------------------------------------------- /Static/front/JTUSjIg1_i6t8kCHKm459W1hyzbi.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Gwenddi/RandomMovieGenerator/7f69f8712371667dc6d556d1f0fbee67920c2409/Static/front/JTUSjIg1_i6t8kCHKm459W1hyzbi.woff2 -------------------------------------------------------------------------------- /Static/front/JTUSjIg1_i6t8kCHKm459WRhyzbi.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Gwenddi/RandomMovieGenerator/7f69f8712371667dc6d556d1f0fbee67920c2409/Static/front/JTUSjIg1_i6t8kCHKm459WRhyzbi.woff2 -------------------------------------------------------------------------------- /Static/front/JTUSjIg1_i6t8kCHKm459WZhyzbi.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Gwenddi/RandomMovieGenerator/7f69f8712371667dc6d556d1f0fbee67920c2409/Static/front/JTUSjIg1_i6t8kCHKm459WZhyzbi.woff2 -------------------------------------------------------------------------------- /Static/front/JTUSjIg1_i6t8kCHKm459Wdhyzbi.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Gwenddi/RandomMovieGenerator/7f69f8712371667dc6d556d1f0fbee67920c2409/Static/front/JTUSjIg1_i6t8kCHKm459Wdhyzbi.woff2 -------------------------------------------------------------------------------- /Static/front/JTUSjIg1_i6t8kCHKm459Wlhyw.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Gwenddi/RandomMovieGenerator/7f69f8712371667dc6d556d1f0fbee67920c2409/Static/front/JTUSjIg1_i6t8kCHKm459Wlhyw.woff2 -------------------------------------------------------------------------------- /Static/front/S6u9w4BMUTPHh6UVSwaPGR_p.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Gwenddi/RandomMovieGenerator/7f69f8712371667dc6d556d1f0fbee67920c2409/Static/front/S6u9w4BMUTPHh6UVSwaPGR_p.woff2 -------------------------------------------------------------------------------- /Static/front/S6u9w4BMUTPHh6UVSwiPGQ.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Gwenddi/RandomMovieGenerator/7f69f8712371667dc6d556d1f0fbee67920c2409/Static/front/S6u9w4BMUTPHh6UVSwiPGQ.woff2 -------------------------------------------------------------------------------- /Static/front/S6u9w4BMUTPHh7USSwaPGR_p.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Gwenddi/RandomMovieGenerator/7f69f8712371667dc6d556d1f0fbee67920c2409/Static/front/S6u9w4BMUTPHh7USSwaPGR_p.woff2 -------------------------------------------------------------------------------- /Static/front/S6u9w4BMUTPHh7USSwiPGQ.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Gwenddi/RandomMovieGenerator/7f69f8712371667dc6d556d1f0fbee67920c2409/Static/front/S6u9w4BMUTPHh7USSwiPGQ.woff2 -------------------------------------------------------------------------------- /Static/front/S6uyw4BMUTPHjx4wXg.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Gwenddi/RandomMovieGenerator/7f69f8712371667dc6d556d1f0fbee67920c2409/Static/front/S6uyw4BMUTPHjx4wXg.woff2 -------------------------------------------------------------------------------- /Static/front/S6uyw4BMUTPHjxAwXjeu.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Gwenddi/RandomMovieGenerator/7f69f8712371667dc6d556d1f0fbee67920c2409/Static/front/S6uyw4BMUTPHjxAwXjeu.woff2 -------------------------------------------------------------------------------- /Static/front/UcC73FwrK3iLTeHuS_fvQtMwCp50KnMa0ZL7SUc.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Gwenddi/RandomMovieGenerator/7f69f8712371667dc6d556d1f0fbee67920c2409/Static/front/UcC73FwrK3iLTeHuS_fvQtMwCp50KnMa0ZL7SUc.woff2 -------------------------------------------------------------------------------- /Static/front/UcC73FwrK3iLTeHuS_fvQtMwCp50KnMa1ZL7.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Gwenddi/RandomMovieGenerator/7f69f8712371667dc6d556d1f0fbee67920c2409/Static/front/UcC73FwrK3iLTeHuS_fvQtMwCp50KnMa1ZL7.woff2 -------------------------------------------------------------------------------- /Static/front/UcC73FwrK3iLTeHuS_fvQtMwCp50KnMa1pL7SUc.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Gwenddi/RandomMovieGenerator/7f69f8712371667dc6d556d1f0fbee67920c2409/Static/front/UcC73FwrK3iLTeHuS_fvQtMwCp50KnMa1pL7SUc.woff2 -------------------------------------------------------------------------------- /Static/front/UcC73FwrK3iLTeHuS_fvQtMwCp50KnMa25L7SUc.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Gwenddi/RandomMovieGenerator/7f69f8712371667dc6d556d1f0fbee67920c2409/Static/front/UcC73FwrK3iLTeHuS_fvQtMwCp50KnMa25L7SUc.woff2 -------------------------------------------------------------------------------- /Static/front/UcC73FwrK3iLTeHuS_fvQtMwCp50KnMa2JL7SUc.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Gwenddi/RandomMovieGenerator/7f69f8712371667dc6d556d1f0fbee67920c2409/Static/front/UcC73FwrK3iLTeHuS_fvQtMwCp50KnMa2JL7SUc.woff2 -------------------------------------------------------------------------------- /Static/front/UcC73FwrK3iLTeHuS_fvQtMwCp50KnMa2ZL7SUc.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Gwenddi/RandomMovieGenerator/7f69f8712371667dc6d556d1f0fbee67920c2409/Static/front/UcC73FwrK3iLTeHuS_fvQtMwCp50KnMa2ZL7SUc.woff2 -------------------------------------------------------------------------------- /Static/front/UcC73FwrK3iLTeHuS_fvQtMwCp50KnMa2pL7SUc.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Gwenddi/RandomMovieGenerator/7f69f8712371667dc6d556d1f0fbee67920c2409/Static/front/UcC73FwrK3iLTeHuS_fvQtMwCp50KnMa2pL7SUc.woff2 -------------------------------------------------------------------------------- /Static/front/bootstrap-icons.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Gwenddi/RandomMovieGenerator/7f69f8712371667dc6d556d1f0fbee67920c2409/Static/front/bootstrap-icons.woff -------------------------------------------------------------------------------- /Static/front/bootstrap-icons.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Gwenddi/RandomMovieGenerator/7f69f8712371667dc6d556d1f0fbee67920c2409/Static/front/bootstrap-icons.woff2 -------------------------------------------------------------------------------- /Static/front/fa-brands-400.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Gwenddi/RandomMovieGenerator/7f69f8712371667dc6d556d1f0fbee67920c2409/Static/front/fa-brands-400.eot -------------------------------------------------------------------------------- /Static/front/fa-brands-400.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Gwenddi/RandomMovieGenerator/7f69f8712371667dc6d556d1f0fbee67920c2409/Static/front/fa-brands-400.ttf -------------------------------------------------------------------------------- /Static/front/fa-brands-400.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Gwenddi/RandomMovieGenerator/7f69f8712371667dc6d556d1f0fbee67920c2409/Static/front/fa-brands-400.woff -------------------------------------------------------------------------------- /Static/front/fa-brands-400.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Gwenddi/RandomMovieGenerator/7f69f8712371667dc6d556d1f0fbee67920c2409/Static/front/fa-brands-400.woff2 -------------------------------------------------------------------------------- /Static/front/fa-regular-400.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Gwenddi/RandomMovieGenerator/7f69f8712371667dc6d556d1f0fbee67920c2409/Static/front/fa-regular-400.eot -------------------------------------------------------------------------------- /Static/front/fa-regular-400.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Gwenddi/RandomMovieGenerator/7f69f8712371667dc6d556d1f0fbee67920c2409/Static/front/fa-regular-400.ttf -------------------------------------------------------------------------------- /Static/front/fa-regular-400.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Gwenddi/RandomMovieGenerator/7f69f8712371667dc6d556d1f0fbee67920c2409/Static/front/fa-regular-400.woff -------------------------------------------------------------------------------- /Static/front/fa-regular-400.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Gwenddi/RandomMovieGenerator/7f69f8712371667dc6d556d1f0fbee67920c2409/Static/front/fa-regular-400.woff2 -------------------------------------------------------------------------------- /Static/front/fa-solid-900.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Gwenddi/RandomMovieGenerator/7f69f8712371667dc6d556d1f0fbee67920c2409/Static/front/fa-solid-900.eot -------------------------------------------------------------------------------- /Static/front/fa-solid-900.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Gwenddi/RandomMovieGenerator/7f69f8712371667dc6d556d1f0fbee67920c2409/Static/front/fa-solid-900.ttf -------------------------------------------------------------------------------- /Static/front/fa-solid-900.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Gwenddi/RandomMovieGenerator/7f69f8712371667dc6d556d1f0fbee67920c2409/Static/front/fa-solid-900.woff -------------------------------------------------------------------------------- /Static/front/fa-solid-900.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Gwenddi/RandomMovieGenerator/7f69f8712371667dc6d556d1f0fbee67920c2409/Static/front/fa-solid-900.woff2 -------------------------------------------------------------------------------- /Static/front/flaticon.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Gwenddi/RandomMovieGenerator/7f69f8712371667dc6d556d1f0fbee67920c2409/Static/front/flaticon.eot -------------------------------------------------------------------------------- /Static/front/flaticon.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Gwenddi/RandomMovieGenerator/7f69f8712371667dc6d556d1f0fbee67920c2409/Static/front/flaticon.ttf -------------------------------------------------------------------------------- /Static/front/flaticon.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Gwenddi/RandomMovieGenerator/7f69f8712371667dc6d556d1f0fbee67920c2409/Static/front/flaticon.woff -------------------------------------------------------------------------------- /Static/front/flaticon.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Gwenddi/RandomMovieGenerator/7f69f8712371667dc6d556d1f0fbee67920c2409/Static/front/flaticon.woff2 -------------------------------------------------------------------------------- /Static/front/materialdesignicons-webfont.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Gwenddi/RandomMovieGenerator/7f69f8712371667dc6d556d1f0fbee67920c2409/Static/front/materialdesignicons-webfont.eot -------------------------------------------------------------------------------- /Static/front/materialdesignicons-webfont.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Gwenddi/RandomMovieGenerator/7f69f8712371667dc6d556d1f0fbee67920c2409/Static/front/materialdesignicons-webfont.ttf -------------------------------------------------------------------------------- /Static/front/materialdesignicons-webfont.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Gwenddi/RandomMovieGenerator/7f69f8712371667dc6d556d1f0fbee67920c2409/Static/front/materialdesignicons-webfont.woff -------------------------------------------------------------------------------- /Static/front/materialdesignicons-webfont.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Gwenddi/RandomMovieGenerator/7f69f8712371667dc6d556d1f0fbee67920c2409/Static/front/materialdesignicons-webfont.woff2 -------------------------------------------------------------------------------- /Static/image/chevron-down.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /Static/image/hello: -------------------------------------------------------------------------------- 1 | 123 2 | -------------------------------------------------------------------------------- /Static/image/profile-cover.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Gwenddi/RandomMovieGenerator/7f69f8712371667dc6d556d1f0fbee67920c2409/Static/image/profile-cover.jpg -------------------------------------------------------------------------------- /Static/js/animated-headline.js: -------------------------------------------------------------------------------- 1 | jQuery(document).ready(function($){ 2 | //set animation timing 3 | var animationDelay = 2500, 4 | //loading bar effect 5 | barAnimationDelay = 3800, 6 | barWaiting = barAnimationDelay - 3000, //3000 is the duration of the transition on the loading bar - set in the scss/css file 7 | //letters effect 8 | lettersDelay = 50, 9 | //type effect 10 | typeLettersDelay = 150, 11 | selectionDuration = 500, 12 | typeAnimationDelay = selectionDuration + 800, 13 | //clip effect 14 | revealDuration = 600, 15 | revealAnimationDelay = 1500; 16 | 17 | initHeadline(); 18 | 19 | 20 | function initHeadline() { 21 | //insert element for each letter of a changing word 22 | singleLetters($('.cd-headline.letters').find('b')); 23 | //initialise headline animation 24 | animateHeadline($('.cd-headline')); 25 | } 26 | 27 | function singleLetters($words) { 28 | $words.each(function(){ 29 | var word = $(this), 30 | letters = word.text().split(''), 31 | selected = word.hasClass('is-visible'); 32 | for (i in letters) { 33 | if(word.parents('.rotate-2').length > 0) letters[i] = '' + letters[i] + ''; 34 | letters[i] = (selected) ? '' + letters[i] + '': '' + letters[i] + ''; 35 | } 36 | var newLetters = letters.join(''); 37 | word.html(newLetters).css('opacity', 1); 38 | }); 39 | } 40 | 41 | function animateHeadline($headlines) { 42 | var duration = animationDelay; 43 | $headlines.each(function(){ 44 | var headline = $(this); 45 | 46 | if(headline.hasClass('loading-bar')) { 47 | duration = barAnimationDelay; 48 | setTimeout(function(){ headline.find('.cd-words-wrapper').addClass('is-loading') }, barWaiting); 49 | } else if (headline.hasClass('clip')){ 50 | var spanWrapper = headline.find('.cd-words-wrapper'), 51 | newWidth = spanWrapper.width() + 10 52 | spanWrapper.css('width', newWidth); 53 | } else if (!headline.hasClass('type') ) { 54 | //assign to .cd-words-wrapper the width of its longest word 55 | var words = headline.find('.cd-words-wrapper b'), 56 | width = 0; 57 | words.each(function(){ 58 | var wordWidth = $(this).width(); 59 | if (wordWidth > width) width = wordWidth; 60 | }); 61 | headline.find('.cd-words-wrapper').css('width', width); 62 | }; 63 | 64 | //trigger animation 65 | setTimeout(function(){ hideWord( headline.find('.is-visible').eq(0) ) }, duration); 66 | }); 67 | } 68 | 69 | function hideWord($word) { 70 | var nextWord = takeNext($word); 71 | 72 | if($word.parents('.cd-headline').hasClass('type')) { 73 | var parentSpan = $word.parent('.cd-words-wrapper'); 74 | parentSpan.addClass('selected').removeClass('waiting'); 75 | setTimeout(function(){ 76 | parentSpan.removeClass('selected'); 77 | $word.removeClass('is-visible').addClass('is-hidden').children('i').removeClass('in').addClass('out'); 78 | }, selectionDuration); 79 | setTimeout(function(){ showWord(nextWord, typeLettersDelay) }, typeAnimationDelay); 80 | 81 | } else if($word.parents('.cd-headline').hasClass('letters')) { 82 | var bool = ($word.children('i').length >= nextWord.children('i').length) ? true : false; 83 | hideLetter($word.find('i').eq(0), $word, bool, lettersDelay); 84 | showLetter(nextWord.find('i').eq(0), nextWord, bool, lettersDelay); 85 | 86 | } else if($word.parents('.cd-headline').hasClass('clip')) { 87 | $word.parents('.cd-words-wrapper').animate({ width : '2px' }, revealDuration, function(){ 88 | switchWord($word, nextWord); 89 | showWord(nextWord); 90 | }); 91 | 92 | } else if ($word.parents('.cd-headline').hasClass('loading-bar')){ 93 | $word.parents('.cd-words-wrapper').removeClass('is-loading'); 94 | switchWord($word, nextWord); 95 | setTimeout(function(){ hideWord(nextWord) }, barAnimationDelay); 96 | setTimeout(function(){ $word.parents('.cd-words-wrapper').addClass('is-loading') }, barWaiting); 97 | 98 | } else { 99 | switchWord($word, nextWord); 100 | setTimeout(function(){ hideWord(nextWord) }, animationDelay); 101 | } 102 | } 103 | 104 | function showWord($word, $duration) { 105 | if($word.parents('.cd-headline').hasClass('type')) { 106 | showLetter($word.find('i').eq(0), $word, false, $duration); 107 | $word.addClass('is-visible').removeClass('is-hidden'); 108 | 109 | } else if($word.parents('.cd-headline').hasClass('clip')) { 110 | $word.parents('.cd-words-wrapper').animate({ 'width' : $word.width() + 10 }, revealDuration, function(){ 111 | setTimeout(function(){ hideWord($word) }, revealAnimationDelay); 112 | }); 113 | } 114 | } 115 | 116 | function hideLetter($letter, $word, $bool, $duration) { 117 | $letter.removeClass('in').addClass('out'); 118 | 119 | if(!$letter.is(':last-child')) { 120 | setTimeout(function(){ hideLetter($letter.next(), $word, $bool, $duration); }, $duration); 121 | } else if($bool) { 122 | setTimeout(function(){ hideWord(takeNext($word)) }, animationDelay); 123 | } 124 | 125 | if($letter.is(':last-child') && $('html').hasClass('no-csstransitions')) { 126 | var nextWord = takeNext($word); 127 | switchWord($word, nextWord); 128 | } 129 | } 130 | 131 | function showLetter($letter, $word, $bool, $duration) { 132 | $letter.addClass('in').removeClass('out'); 133 | 134 | if(!$letter.is(':last-child')) { 135 | setTimeout(function(){ showLetter($letter.next(), $word, $bool, $duration); }, $duration); 136 | } else { 137 | if($word.parents('.cd-headline').hasClass('type')) { setTimeout(function(){ $word.parents('.cd-words-wrapper').addClass('waiting'); }, 200);} 138 | if(!$bool) { setTimeout(function(){ hideWord($word) }, animationDelay) } 139 | } 140 | } 141 | 142 | function takeNext($word) { 143 | return (!$word.is(':last-child')) ? $word.next() : $word.parent().children().eq(0); 144 | } 145 | 146 | function takePrev($word) { 147 | return (!$word.is(':first-child')) ? $word.prev() : $word.parent().children().last(); 148 | } 149 | 150 | function switchWord($oldWord, $newWord) { 151 | $oldWord.removeClass('is-visible').addClass('is-hidden'); 152 | $newWord.removeClass('is-hidden').addClass('is-visible'); 153 | } 154 | }); -------------------------------------------------------------------------------- /Static/js/dataTables.bootstrap4.min.js: -------------------------------------------------------------------------------- 1 | /*! 2 | DataTables Bootstrap 4 integration 3 | ©2011-2017 SpryMedia Ltd - datatables.net/license 4 | */ 5 | (function(b){"function"===typeof define&&define.amd?define(["jquery","datatables.net"],function(a){return b(a,window,document)}):"object"===typeof exports?module.exports=function(a,d){a||(a=window);if(!d||!d.fn.dataTable)d=require("datatables.net")(a,d).$;return b(d,a,a.document)}:b(jQuery,window,document)})(function(b,a,d,m){var f=b.fn.dataTable;b.extend(!0,f.defaults,{dom:"<'row'<'col-sm-12 col-md-6'l><'col-sm-12 col-md-6'f>><'row'<'col-sm-12'tr>><'row'<'col-sm-12 col-md-5'i><'col-sm-12 col-md-7'p>>", 6 | renderer:"bootstrap"});b.extend(f.ext.classes,{sWrapper:"dataTables_wrapper dt-bootstrap4",sFilterInput:"form-control form-control-sm",sLengthSelect:"custom-select custom-select-sm form-control form-control-sm",sProcessing:"dataTables_processing card",sPageButton:"paginate_button page-item"});f.ext.renderer.pageButton.bootstrap=function(a,h,r,s,j,n){var o=new f.Api(a),t=a.oClasses,k=a.oLanguage.oPaginate,u=a.oLanguage.oAria.paginate||{},e,g,p=0,q=function(d,f){var l,h,i,c,m=function(a){a.preventDefault(); 7 | !b(a.currentTarget).hasClass("disabled")&&o.page()!=a.data.action&&o.page(a.data.action).draw("page")};l=0;for(h=f.length;l", 8 | {"class":t.sPageButton+" "+g,id:0===r&&"string"===typeof c?a.sTableId+"_"+c:null}).append(b("",{href:"#","aria-controls":a.sTableId,"aria-label":u[c],"data-dt-idx":p,tabindex:a.iTabIndex,"class":"page-link"}).html(e)).appendTo(d),a.oApi._fnBindAction(i,{action:c},m),p++)}},i;try{i=b(h).find(d.activeElement).data("dt-idx")}catch(v){}q(b(h).empty().html('