├── Dao └── dashboardSql.go ├── Middleware └── authMiddleware.go ├── conf ├── btApi.go ├── conf.go └── sqlConn.go ├── controller ├── Dashboard.go ├── Email.go └── User.go ├── go.mod ├── go.sum ├── index ├── css │ ├── animate.min.css │ ├── bootstrap.min.css │ ├── css2.css │ ├── default.css │ ├── flaticon.css │ ├── fontawesome-all.min.css │ ├── magnific-popup.css │ ├── responsive.css │ ├── slick.css │ └── style.css ├── font │ ├── XRXV3I6Li01BKofIMeaBXso.woff2 │ ├── XRXV3I6Li01BKofINeaB.woff2 │ ├── XRXV3I6Li01BKofIO-aBXso.woff2 │ ├── XRXV3I6Li01BKofIOOaBXso.woff2 │ ├── XRXV3I6Li01BKofIOuaBXso.woff2 │ ├── XRXX3I6Li01BKofIMNaDRs4.woff2 │ ├── XRXX3I6Li01BKofIMNaHRs71cA.woff2 │ ├── XRXX3I6Li01BKofIMNaMRs71cA.woff2 │ ├── XRXX3I6Li01BKofIMNaNRs71cA.woff2 │ ├── XRXX3I6Li01BKofIMNaORs71cA.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 │ ├── pxiByp8kv8JHgFVrLCz7Z11lFc-K.woff2 │ ├── pxiByp8kv8JHgFVrLCz7Z1JlFc-K.woff2 │ ├── pxiByp8kv8JHgFVrLCz7Z1xlFQ.woff2 │ ├── pxiByp8kv8JHgFVrLDD4Z11lFc-K.woff2 │ ├── pxiByp8kv8JHgFVrLDD4Z1JlFc-K.woff2 │ ├── pxiByp8kv8JHgFVrLDD4Z1xlFQ.woff2 │ ├── pxiByp8kv8JHgFVrLEj6Z11lFc-K.woff2 │ ├── pxiByp8kv8JHgFVrLEj6Z1JlFc-K.woff2 │ ├── pxiByp8kv8JHgFVrLEj6Z1xlFQ.woff2 │ ├── pxiByp8kv8JHgFVrLGT9Z11lFc-K.woff2 │ ├── pxiByp8kv8JHgFVrLGT9Z1JlFc-K.woff2 │ ├── pxiByp8kv8JHgFVrLGT9Z1xlFQ.woff2 │ ├── pxiDyp8kv8JHgFVrJJLmg1hVF9eO.woff2 │ ├── pxiDyp8kv8JHgFVrJJLmg1hVFteOcEg.woff2 │ ├── pxiDyp8kv8JHgFVrJJLmg1hVGdeOcEg.woff2 │ ├── pxiDyp8kv8JHgFVrJJLmr19VF9eO.woff2 │ ├── pxiDyp8kv8JHgFVrJJLmr19VFteOcEg.woff2 │ ├── pxiDyp8kv8JHgFVrJJLmr19VGdeOcEg.woff2 │ ├── pxiEyp8kv8JHgFVrJJbecmNE.woff2 │ ├── pxiEyp8kv8JHgFVrJJfecg.woff2 │ ├── pxiEyp8kv8JHgFVrJJnecmNE.woff2 │ ├── pxiGyp8kv8JHgFVrJJLucHtA.woff2 │ ├── pxiGyp8kv8JHgFVrJJLucXtAKPY.woff2 │ └── pxiGyp8kv8JHgFVrJJLufntAKPY.woff2 ├── image │ ├── banner_bg.jpg │ ├── business_bg.png │ ├── faq_img_shape01.png │ ├── footer_bg.jpg │ ├── soft_services_hover01.png │ ├── soft_services_hover02.png │ ├── soft_services_item01.png │ ├── soft_services_item02.png │ └── team_bg_shape.png ├── js │ ├── bootstrap.min.js │ ├── jquery-3.6.0.min.js │ ├── jquery.magnific-popup.min.js │ ├── main.js │ ├── owl.carousel.min.js │ └── slick.min.js └── picture │ ├── banner_img.png │ ├── brand_logo01.png │ ├── brand_logo02.png │ ├── brand_logo03.png │ ├── brand_logo04.png │ ├── brand_logo05.png │ ├── features_icon01.png │ ├── features_icon02.png │ ├── features_icon03.png │ ├── features_icon04.png │ ├── features_shape01.png │ ├── features_shape02.png │ ├── feedback_bg.jpg │ ├── feedback_client01.png │ ├── feedback_client02.png │ ├── feedback_img.png │ ├── feedback_img02.jpg │ ├── fw_logo.png │ ├── india.png │ ├── kb_slider_shape01.png │ ├── kb_slider_shape02.png │ ├── kb_slider_shape03.png │ ├── kb_slider_shape04.png │ ├── kb_slider_shape05.png │ ├── kb_slider_shape06.png │ ├── kb_slider_shape07.png │ ├── kb_slider_shape08.png │ ├── kb_slider_shape09.png │ ├── logo.png │ ├── russia.png │ ├── support_img.png │ ├── thailand.png │ ├── trial_shape01.png │ ├── trial_shape02.png │ └── united-states.png ├── maildou.sql ├── main.go ├── modle ├── MailModle.go └── accountModle.go ├── readme.md ├── route ├── dashboardRoute.go ├── emailRoute.go ├── indexRoute.go └── userRoute.go ├── static ├── css │ ├── app.min.css │ ├── bootstrap-datepicker.css │ ├── bootstrap-datepicker.min.css │ ├── bootstrap-datepicker3.css │ ├── bootstrap-responsive.css │ ├── bootstrap-slider.min.css │ ├── bootstrap-table.min.css │ ├── bootstrap-timepicker.min.css │ ├── bootstrap.css │ ├── buttons.bootstrap5.min.css │ ├── cf.errors.css │ ├── css2.css │ ├── dataTables.bootstrap5.min.css │ ├── daterangepicker.css │ ├── default-skin.css │ ├── docs.css │ ├── jquery-jvectormap.css │ ├── jquery.countdown.css │ ├── jquery.fileupload.css │ ├── jquery.tagit.css │ ├── jquery.typeahead.min.css │ ├── lity.min.css │ ├── main.min.css │ ├── main.min1.css │ ├── main.min2.css │ ├── main.min3.css │ ├── main.min4.css │ ├── photoswipe.css │ ├── picker.min.css │ ├── prettify.css │ ├── responsive.bootstrap5.min.css │ ├── spectrum.min.css │ ├── summernote-lite.css │ ├── vendor.min.css │ └── www-player.css ├── file │ ├── gallery-1.jpg │ ├── gallery-10.jpg │ ├── gallery-11.jpg │ ├── gallery-12.jpg │ ├── gallery-13.jpg │ ├── gallery-14.jpg │ ├── gallery-15.jpg │ ├── gallery-16.jpg │ ├── gallery-17.jpg │ ├── gallery-18.jpg │ ├── gallery-19.jpg │ ├── gallery-2.jpg │ ├── gallery-20.jpg │ ├── gallery-21.jpg │ ├── gallery-22.jpg │ ├── gallery-23.jpg │ ├── gallery-24.jpg │ ├── gallery-25.jpg │ ├── gallery-26.jpg │ ├── gallery-27.jpg │ ├── gallery-28.jpg │ ├── gallery-29.jpg │ ├── gallery-3.jpg │ ├── gallery-30.jpg │ ├── gallery-31.jpg │ ├── gallery-32.jpg │ ├── gallery-33.jpg │ ├── gallery-34.jpg │ ├── gallery-35.jpg │ ├── gallery-36.jpg │ ├── gallery-37.jpg │ ├── gallery-38.jpg │ ├── gallery-39.jpg │ ├── gallery-4.jpg │ ├── gallery-40.jpg │ ├── gallery-41.jpg │ ├── gallery-42.jpg │ ├── gallery-43.jpg │ ├── gallery-44.jpg │ ├── gallery-45.jpg │ ├── gallery-46.jpg │ ├── gallery-47.jpg │ ├── gallery-48.jpg │ ├── gallery-49.jpg │ ├── gallery-5.jpg │ ├── gallery-50.jpg │ ├── gallery-51.jpg │ ├── gallery-52.jpg │ ├── gallery-53.jpg │ ├── gallery-6.jpg │ ├── gallery-7.jpg │ ├── gallery-8.jpg │ └── gallery-9.jpg ├── font │ ├── KFOmCnqEu92Fr1Mu4WxKOzY.woff2 │ ├── KFOmCnqEu92Fr1Mu4mxK.woff2 │ ├── KFOmCnqEu92Fr1Mu5mxKOzY.woff2 │ ├── KFOmCnqEu92Fr1Mu72xKOzY.woff2 │ ├── KFOmCnqEu92Fr1Mu7GxKOzY.woff2 │ ├── KFOmCnqEu92Fr1Mu7WxKOzY.woff2 │ ├── KFOmCnqEu92Fr1Mu7mxKOzY.woff2 │ ├── bootstrap-icons.woff │ ├── bootstrap-icons.woff2 │ ├── cIflMapbsEk7TDLdtEz1BwkeNIh1R5_F.woff2 │ ├── cIflMapbsEk7TDLdtEz1BwkeNIh1SJ_F7AY.woff2 │ ├── cIflMapbsEk7TDLdtEz1BwkeNIh1SZ_F7AY.woff2 │ ├── cIflMapbsEk7TDLdtEz1BwkeNIh1U5_F7AY.woff2 │ ├── cIflMapbsEk7TDLdtEz1BwkebIl1R5_F.woff2 │ ├── cIflMapbsEk7TDLdtEz1BwkebIl1SJ_F7AY.woff2 │ ├── cIflMapbsEk7TDLdtEz1BwkebIl1SZ_F7AY.woff2 │ ├── cIflMapbsEk7TDLdtEz1BwkebIl1U5_F7AY.woff2 │ ├── fa-brands-400.ttf │ ├── fa-brands-400.woff2 │ ├── fa-regular-400.ttf │ ├── fa-regular-400.woff2 │ ├── fa-solid-900.ttf │ ├── fa-solid-900.woff2 │ ├── fa-v4compatibility.ttf │ ├── fa-v4compatibility.woff2 │ ├── summernote.eot │ ├── summernote.ttf │ ├── summernote.woff │ └── summernote.woff2 ├── image │ ├── browser-bar.png │ ├── cf-icon-browser.png │ ├── cf-icon-cloud.png │ ├── cf-icon-error.png │ ├── cf-icon-horizontal-arrow.png │ ├── cf-icon-ok.png │ ├── cf-icon-server.png │ ├── cf-no-screenshot-error.png │ ├── cf-no-screenshot-warn.png │ ├── cover-2.jpg │ ├── cover-3.jpg │ ├── cover-4.jpg │ ├── cover-5.jpg │ ├── cover-thumb-1.jpg │ ├── cover-thumb-2.jpg │ ├── cover-thumb-3.jpg │ ├── cover-thumb-4.jpg │ ├── cover-thumb-5.jpg │ ├── cover.jpg │ ├── cover1.jpg │ ├── default-skin.png │ ├── default-skin.svg │ ├── gallery-1.jpg │ ├── gallery-10.jpg │ ├── gallery-11.jpg │ ├── gallery-12.jpg │ ├── gallery-13.jpg │ ├── gallery-14.jpg │ ├── gallery-15.jpg │ ├── gallery-16.jpg │ ├── gallery-17.jpg │ ├── gallery-18.jpg │ ├── gallery-19.jpg │ ├── gallery-2.jpg │ ├── gallery-20.jpg │ ├── gallery-21.jpg │ ├── gallery-22.jpg │ ├── gallery-23.jpg │ ├── gallery-24.jpg │ ├── gallery-25.jpg │ ├── gallery-26.jpg │ ├── gallery-27.jpg │ ├── gallery-28.jpg │ ├── gallery-29.jpg │ ├── gallery-3.jpg │ ├── gallery-30.jpg │ ├── gallery-31.jpg │ ├── gallery-32.jpg │ ├── gallery-33.jpg │ ├── gallery-34.jpg │ ├── gallery-35.jpg │ ├── gallery-4.jpg │ ├── gallery-5.jpg │ ├── gallery-6.jpg │ ├── gallery-7.jpg │ ├── gallery-8.jpg │ ├── gallery-9.jpg │ ├── glyphicons-halflings-white.png │ ├── glyphicons-halflings.png │ ├── icon-exclamation.png │ ├── logo.png │ ├── news-1.jpg │ ├── news-2.jpg │ ├── pattern.png │ ├── preloader.gif │ ├── product-1.jpeg │ ├── product-1.jpg │ ├── product-10.jpg │ ├── product-11.jpg │ ├── product-12.jpg │ ├── product-13.jpg │ ├── product-14.jpg │ ├── product-15.jpg │ ├── product-16.jpg │ ├── product-17.jpg │ ├── product-2.jpeg │ ├── product-2.jpg │ ├── product-3.jpeg │ ├── product-3.jpg │ ├── product-4.jpeg │ ├── product-4.jpg │ ├── product-5.jpeg │ ├── product-5.jpg │ ├── product-6.jpg │ ├── product-7.jpg │ ├── product-8.jpg │ └── product-9.jpg ├── js │ ├── analytics.demo.js │ ├── apexcharts.min.js │ ├── app.min.js │ ├── application.js │ ├── base.js │ ├── bootstrap-affix.js │ ├── bootstrap-alert.js │ ├── bootstrap-button.js │ ├── bootstrap-carousel.js │ ├── bootstrap-collapse.js │ ├── bootstrap-datepicker.js │ ├── bootstrap-datepicker.min.js │ ├── bootstrap-dropdown.js │ ├── bootstrap-modal.js │ ├── bootstrap-popover.js │ ├── bootstrap-scrollspy.js │ ├── bootstrap-slider.min.js │ ├── bootstrap-tab.js │ ├── bootstrap-table.min.js │ ├── bootstrap-timepicker.min.js │ ├── bootstrap-tooltip.js │ ├── bootstrap-transition.js │ ├── bootstrap-typeahead.js │ ├── buttons.bootstrap5.min.js │ ├── buttons.colVis.min.js │ ├── buttons.flash.min.js │ ├── buttons.html5.min.js │ ├── buttons.print.min.js │ ├── calendar.demo.js │ ├── canvas-to-blob.min.js │ ├── chart-apex.demo.js │ ├── chart-js.demo.js │ ├── chart.min.js │ ├── dashboard.demo.js │ ├── dataTables.bootstrap5.min.js │ ├── dataTables.buttons.min.js │ ├── dataTables.responsive.min.js │ ├── daterangepicker.js │ ├── email-compose.demo.js │ ├── email-decode.min.js │ ├── fetch-polyfill.js │ ├── form-plugins.demo.js │ ├── highlight.min.js │ ├── highlightjs.demo.js │ ├── holder.js │ ├── jquery-jvectormap.min.js │ ├── jquery-jvectormap.min.map │ ├── jquery-migrate.min.js │ ├── jquery.blueimp-gallery.min.js │ ├── jquery.countdown.js │ ├── jquery.dataTables.min.js │ ├── jquery.fileupload-audio.js │ ├── jquery.fileupload-image.js │ ├── jquery.fileupload-process.js │ ├── jquery.fileupload-ui.js │ ├── jquery.fileupload-validate.js │ ├── jquery.fileupload-video.js │ ├── jquery.fileupload.js │ ├── jquery.iframe-transport.js │ ├── jquery.js │ ├── jquery.maskedinput.js │ ├── jquery.plugin.js │ ├── jquery.typeahead.min.js │ ├── jquery.ui.widget.js │ ├── js.js │ ├── js1.js │ ├── lity.min.js │ ├── load-image.all.min.js │ ├── main.global.js │ ├── main.global1.js │ ├── main.global2.js │ ├── main.global3.js │ ├── main.global4.js │ ├── main.global5.js │ ├── map.demo.js │ ├── masonry.pkgd.min.js │ ├── moment.js │ ├── moment.min.js │ ├── page-coming-soon.demo.js │ ├── page-gallery.demo.js │ ├── page-scrum-board.demo.js │ ├── photoswipe-ui-default.min.js │ ├── photoswipe.min.js │ ├── picker.min.js │ ├── pos-counter-checkout.demo.js │ ├── pos-customer-order.demo.js │ ├── pos-kitchen-order.demo.js │ ├── pos-table-booking.demo.js │ ├── prettify.js │ ├── responsive.bootstrap5.min.js │ ├── rocket-loader.min.js │ ├── sidebar-scrollspy.demo.js │ ├── spectrum.min.js │ ├── summernote-lite.min.js │ ├── table-plugins.demo.js │ ├── tag-it.min.js │ ├── tmpl.min.js │ ├── ui-modal-notification.demo.js │ ├── v652eace1692a40cfa3763df669d7439c1639079717194.js │ ├── vendor.min.js │ ├── widgets.demo.js │ ├── world-mill.js │ └── www-embed-player.js └── picture │ ├── 212837.jpg │ ├── 2128371.jpg │ ├── 2128372.jpg │ ├── 2128373.jpg │ ├── banner.png │ ├── ffffff.jpg │ ├── gallery-1.jpg │ ├── gallery-10.jpg │ ├── gallery-11.jpg │ ├── gallery-12.jpg │ ├── gallery-13.jpg │ ├── gallery-2.jpg │ ├── gallery-21.jpg │ ├── gallery-22.jpg │ ├── gallery-23.jpg │ ├── gallery-24.jpg │ ├── gallery-25.jpg │ ├── gallery-26.jpg │ ├── gallery-27.jpg │ ├── gallery-28.jpg │ ├── gallery-29.jpg │ ├── gallery-3.jpg │ ├── gallery-30.jpg │ ├── gallery-31.jpg │ ├── gallery-32.jpg │ ├── gallery-33.jpg │ ├── gallery-34.jpg │ ├── gallery-35.jpg │ ├── gallery-36.jpg │ ├── gallery-37.jpg │ ├── gallery-38.jpg │ ├── gallery-39.jpg │ ├── gallery-4.jpg │ ├── gallery-40.jpg │ ├── gallery-41.jpg │ ├── gallery-42.jpg │ ├── gallery-43.jpg │ ├── gallery-44.jpg │ ├── gallery-45.jpg │ ├── gallery-46.jpg │ ├── gallery-47.jpg │ ├── gallery-48.jpg │ ├── gallery-49.jpg │ ├── gallery-5.jpg │ ├── gallery-50.jpg │ ├── gallery-51.jpg │ ├── gallery-52.jpg │ ├── gallery-53.jpg │ ├── gallery-6.jpg │ ├── gallery-7.jpg │ ├── gallery-8.jpg │ ├── gallery-9.jpg │ ├── icon-table.svg │ ├── logo.png │ ├── mqdefault.jpg │ ├── mqdefault1.jpg │ ├── mqdefault10.jpg │ ├── mqdefault11.jpg │ ├── mqdefault12.jpg │ ├── mqdefault13.jpg │ ├── mqdefault14.jpg │ ├── mqdefault15.jpg │ ├── mqdefault2.jpg │ ├── mqdefault3.jpg │ ├── mqdefault4.jpg │ ├── mqdefault5.jpg │ ├── mqdefault6.jpg │ ├── mqdefault7.jpg │ ├── mqdefault8.jpg │ ├── mqdefault9.jpg │ ├── product-1.jpg │ ├── product-10.jpg │ ├── product-11.jpg │ ├── product-12.jpg │ ├── product-13.jpg │ ├── product-14.jpg │ ├── product-15.jpg │ ├── product-2.jpg │ ├── product-3.jpg │ ├── product-6.jpg │ ├── product-7.jpg │ ├── product-8.jpg │ ├── product-9.jpg │ ├── product.png │ ├── profile.jpg │ ├── user-1.jpg │ ├── user-10.jpg │ ├── user-2.jpg │ ├── user-3.jpg │ ├── user-4.jpg │ ├── user-5.jpg │ ├── user-6.jpg │ ├── user-7.jpg │ ├── user-8.jpg │ ├── user-9.jpg │ ├── user.jpg │ └── widget-cover-1.jpg └── template ├── dashboard └── index.html ├── index ├── error.html ├── index.html └── true.html ├── mail ├── list.html └── read.html └── public ├── footer.html ├── header.html ├── script.html ├── sidebar.html ├── themepanel.html └── toolsbars.html /Middleware/authMiddleware.go: -------------------------------------------------------------------------------- 1 | package middleware 2 | 3 | import ( 4 | "github.com/gin-contrib/sessions" 5 | "github.com/gin-gonic/gin" 6 | "net/http" 7 | "yxd/modle" 8 | ) 9 | 10 | func Auth(c *gin.Context) { 11 | session := sessions.Default(c) 12 | if !modle.IsOk(session) { 13 | session.Clear() 14 | session.Save() 15 | c.HTML(http.StatusOK, "index/error.html", gin.H{ 16 | "error": "用户登录失效,请重新登录", 17 | "tag": "010", 18 | }) 19 | return 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /conf/btApi.go: -------------------------------------------------------------------------------- 1 | package conf 2 | 3 | import ( 4 | "crypto/md5" 5 | "encoding/hex" 6 | "encoding/json" 7 | "errors" 8 | "io/ioutil" 9 | "log" 10 | "net/http" 11 | "net/url" 12 | "strconv" 13 | "strings" 14 | "time" 15 | ) 16 | 17 | var token = "宝塔TOKEN" 18 | var urls = "宝塔API地址" 19 | 20 | type rData struct { 21 | Status bool 22 | Msg string `json:"msg"` 23 | } 24 | 25 | func DeleteEmail() { 26 | 27 | } 28 | 29 | func ChangePassword(address string) bool { 30 | db, err := SqlConn() 31 | if err != nil { 32 | return false 33 | } 34 | defer db.Close() 35 | 36 | stmt, err := db.Prepare("UPDATE mail set token=? WHERE mail = ?") 37 | if err != nil { 38 | return false 39 | } 40 | pwd := RandomString(16) 41 | p := GetKeyData() 42 | p.Add("quota", "200 M") 43 | p.Add("username", address) 44 | p.Add("password", pwd) 45 | p.Add("full_name", address) 46 | p.Add("is_admin", "0") 47 | p.Add("active", "1") 48 | req, err := http.NewRequest(http.MethodPost, urls+"/plugin?action=a&name=mail_sys&s=update_mailbox", strings.NewReader(p.Encode())) 49 | req.Header.Set("Content-type", "application/x-www-form-urlencoded") 50 | client := http.Client{ 51 | Timeout: time.Second * 15, 52 | } 53 | do, err := client.Do(req) 54 | defer do.Body.Close() 55 | all, err := ioutil.ReadAll(do.Body) 56 | if err != nil { 57 | return false 58 | } 59 | var r rData 60 | err = json.Unmarshal(all, &r) 61 | if err != nil { 62 | return false 63 | } 64 | if !r.Status { 65 | log.Println(r.Msg) 66 | return false 67 | } 68 | rows, err := stmt.Exec(pwd, address) 69 | if err != nil { 70 | return false 71 | } 72 | num, err := rows.RowsAffected() 73 | if err != nil { 74 | return false 75 | } 76 | if num != 1 { 77 | return false 78 | } 79 | return true 80 | } 81 | 82 | func AddEmail(address string, password string, prefix string) error { 83 | p := GetKeyData() 84 | p.Add("quota", "200 M") 85 | p.Add("username", address) 86 | p.Add("password", password) 87 | p.Add("full_name", prefix) 88 | p.Add("is_admin", "0") 89 | //log.Println(p.Encode()) 90 | req, err := http.NewRequest(http.MethodPost, urls+"/plugin?action=a&name=mail_sys&s=add_mailbox", strings.NewReader(p.Encode())) 91 | 92 | req.Header.Set("Content-type", "application/x-www-form-urlencoded") 93 | client := http.Client{ 94 | Timeout: time.Second * 15, 95 | } 96 | do, err := client.Do(req) 97 | defer do.Body.Close() 98 | all, err := ioutil.ReadAll(do.Body) 99 | if err != nil { 100 | return err 101 | } 102 | var r rData 103 | err = json.Unmarshal(all, &r) 104 | if err != nil { 105 | return err 106 | } 107 | log.Println(string(all)) 108 | log.Println(r.Msg) 109 | if !r.Status { 110 | log.Println(r.Msg) 111 | return errors.New("错误,服务器创建邮箱失败") 112 | } 113 | return nil 114 | } 115 | 116 | func GetKeyData() url.Values { 117 | timeNow := time.Now().Unix() 118 | u := url.Values{} 119 | u.Add("request_time", strconv.Itoa(int(timeNow))) 120 | u.Add("request_token", Md5V(strconv.Itoa(int(timeNow))+Md5V(token))) 121 | return u 122 | } 123 | 124 | func Md5V(str string) string { 125 | h := md5.New() 126 | h.Write([]byte(str)) 127 | return hex.EncodeToString(h.Sum(nil)) 128 | } 129 | 130 | func GetUrl() string { 131 | return urls 132 | } 133 | -------------------------------------------------------------------------------- /conf/conf.go: -------------------------------------------------------------------------------- 1 | package conf 2 | 3 | var regkey = "asdbvc" // 密码加盐,可以随便设置 4 | var serv = "xxx.abc.com:143" // 邮箱服务器地址 5 | 6 | func GetRegKey() string { 7 | return regkey 8 | } 9 | 10 | func GetServ() string { 11 | return serv 12 | } 13 | -------------------------------------------------------------------------------- /conf/sqlConn.go: -------------------------------------------------------------------------------- 1 | package conf 2 | 3 | import ( 4 | "database/sql" 5 | _ "github.com/go-sql-driver/mysql" 6 | "math/rand" 7 | "time" 8 | ) 9 | 10 | func SqlConn() (db *sql.DB, err error) { 11 | 12 | db, err = sql.Open("mysql", "数据库用户名:数据库密码@tcp(127.0.0.1:3306)/数据库名") 13 | if err != nil { 14 | return nil, err 15 | } 16 | err = db.Ping() 17 | if err != nil { 18 | return nil, err 19 | } 20 | return 21 | } 22 | 23 | func RandomString(n int) string { 24 | letters := []rune("abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789") 25 | rand.Seed(time.Now().UnixNano()) 26 | b := make([]rune, n) 27 | for i := range b { 28 | b[i] = letters[rand.Intn(len(letters))] 29 | } 30 | return string(b) 31 | } 32 | -------------------------------------------------------------------------------- /controller/User.go: -------------------------------------------------------------------------------- 1 | package controller 2 | 3 | import ( 4 | "fmt" 5 | "yxd/conf" 6 | ) 7 | 8 | type UserInfo struct { 9 | Id string `json:"id" form:"e"` 10 | Username string `json:"username" form:"b"` 11 | Token string `json:"token" form:"c"` 12 | Time string `json:"time" form:"a"` 13 | Regtoken string `json:"regtoken" form:"d"` 14 | } 15 | 16 | // Login 17 | // @ 登录失败返回type=1,error为错误提示 18 | // @ 登录成功返回type=0,user为返回的用户信息 19 | // @receiver u 20 | // @return map[string]interface{} 21 | // 22 | func (u *UserInfo) Login() map[string]interface{} { 23 | re := make(map[string]interface{}) 24 | db, err := conf.SqlConn() 25 | if err != nil { 26 | re["type"] = false 27 | re["error"] = "错误:数据库连接失败" 28 | re["tag"] = "000" 29 | return re 30 | } 31 | defer db.Close() 32 | is, user := SelectPrepare(u.Token, u.Id, u.Username) 33 | if !is { 34 | re["type"] = false 35 | re["error"] = "登录失败:错误的token" 36 | re["tag"] = "005" 37 | return re 38 | } 39 | re["type"] = true 40 | re["error"] = "登录成功:稍等跳转" 41 | re["user"] = user 42 | return re 43 | } 44 | 45 | // 46 | // Reg 47 | // @ type为false则注册失败,error为错误信息 48 | // @ type为true注册成功,user返回users结构体 49 | // @receiver userinfo结构体 50 | // @return map[string]interface{} 51 | // 52 | func (u *UserInfo) Reg() map[string]interface{} { 53 | re := make(map[string]interface{}) 54 | fmt.Println(u.Id) 55 | db, err := conf.SqlConn() 56 | if err != nil { 57 | re["type"] = false 58 | re["error"] = "错误:数据库连接失败" 59 | re["tag"] = "000" 60 | return re 61 | } 62 | defer db.Close() 63 | sqlStr := "insert into user value(?,?,?)" 64 | stmt, err := db.Prepare(sqlStr) 65 | if err != nil { 66 | re["type"] = false 67 | re["error"] = "注册失败:操作数据库错误,可能存在相同的用户名或ID" 68 | re["tag"] = "001" 69 | return re 70 | } 71 | defer stmt.Close() 72 | entry := conf.Md5V(conf.GetRegKey() + u.Token + u.Time) 73 | if entry == u.Regtoken { 74 | _, err := stmt.Exec(u.Id, u.Username, u.Token) 75 | if err != nil { 76 | re["type"] = false 77 | re["error"] = "注册失败:操作数据库错误" 78 | re["tag"] = "002" 79 | return re 80 | } 81 | var user UserInfo 82 | user.Id = u.Id 83 | user.Token = u.Token 84 | user.Username = u.Username 85 | re["type"] = true 86 | re["error"] = "注册成功" 87 | re["user"] = user 88 | return re 89 | } else { 90 | re["type"] = false 91 | re["error"] = "注册失败:错误的token" 92 | re["tag"] = "003" 93 | return re 94 | } 95 | } 96 | 97 | // SelectPrepare 98 | // @param db 数据库连接 99 | // @param token 100 | // @param id 101 | // @param username 102 | // @return bool false为查询失败 103 | // @return Users 结构体 104 | // 105 | func SelectPrepare(token string, id string, username string) (bool, UserInfo) { 106 | db, err := conf.SqlConn() 107 | if err != nil { 108 | return false, UserInfo{} 109 | } 110 | defer db.Close() 111 | sqlStr := "select * from user where token = ? and id = ? and username = ?" 112 | stmt, err := db.Prepare(sqlStr) 113 | if err != nil { 114 | return false, UserInfo{} 115 | } 116 | defer stmt.Close() 117 | var user UserInfo 118 | err = stmt.QueryRow(token, id, username).Scan(&user.Id, &user.Username, &user.Token) 119 | if err != nil { 120 | return false, UserInfo{} 121 | } 122 | return true, user 123 | 124 | } 125 | -------------------------------------------------------------------------------- /go.mod: -------------------------------------------------------------------------------- 1 | module yxd 2 | 3 | go 1.17 4 | 5 | require ( 6 | github.com/dlclark/regexp2 v1.4.0 7 | github.com/emersion/go-imap v1.2.1 8 | github.com/emersion/go-message v0.16.0 9 | github.com/gin-contrib/sessions v0.0.5 10 | github.com/gin-gonic/gin v1.8.0 11 | github.com/go-sql-driver/mysql v1.6.0 12 | ) 13 | 14 | require ( 15 | github.com/emersion/go-sasl v0.0.0-20211008083017-0b9dcfb154ac // indirect 16 | github.com/emersion/go-textwrapper v0.0.0-20200911093747-65d896831594 // indirect 17 | github.com/gin-contrib/sse v0.1.0 // indirect 18 | github.com/go-playground/locales v0.14.0 // indirect 19 | github.com/go-playground/universal-translator v0.18.0 // indirect 20 | github.com/go-playground/validator/v10 v10.11.0 // indirect 21 | github.com/goccy/go-json v0.9.7 // indirect 22 | github.com/gorilla/context v1.1.1 // indirect 23 | github.com/gorilla/securecookie v1.1.1 // indirect 24 | github.com/gorilla/sessions v1.2.1 // indirect 25 | github.com/json-iterator/go v1.1.12 // indirect 26 | github.com/leodido/go-urn v1.2.1 // indirect 27 | github.com/mattn/go-isatty v0.0.14 // indirect 28 | github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd // indirect 29 | github.com/modern-go/reflect2 v1.0.2 // indirect 30 | github.com/pelletier/go-toml/v2 v2.0.1 // indirect 31 | github.com/ugorji/go/codec v1.2.7 // indirect 32 | golang.org/x/crypto v0.0.0-20220525230936-793ad666bf5e // indirect 33 | golang.org/x/net v0.0.0-20220531201128-c960675eff93 // indirect 34 | golang.org/x/sys v0.0.0-20220520151302-bc2c85ada10a // indirect 35 | golang.org/x/text v0.3.7 // indirect 36 | golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1 // indirect 37 | google.golang.org/protobuf v1.28.0 // indirect 38 | gopkg.in/yaml.v2 v2.4.0 // indirect 39 | ) 40 | -------------------------------------------------------------------------------- /index/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://themebeyond.com/pre/artom-prev/artom-live/fonts/flaticon.svg?47fc6aefccc57a13c37d6cb703e6a456") 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-bar-chart:before { 22 | content: "\f101"; 23 | } 24 | .flaticon-24-hours:before { 25 | content: "\f102"; 26 | } 27 | .flaticon-search-magnifier-outline:before { 28 | content: "\f103"; 29 | } 30 | .flaticon-support:before { 31 | content: "\f104"; 32 | } 33 | .flaticon-online-service:before { 34 | content: "\f105"; 35 | } 36 | .flaticon-check:before { 37 | content: "\f106"; 38 | } 39 | .flaticon-done-tick:before { 40 | content: "\f107"; 41 | } 42 | .flaticon-left-quote:before { 43 | content: "\f108"; 44 | } 45 | .flaticon-left-arrow:before { 46 | content: "\f109"; 47 | } 48 | .flaticon-arrow:before { 49 | content: "\f10a"; 50 | } 51 | .flaticon-lamp:before { 52 | content: "\f10b"; 53 | } 54 | .flaticon-money-growth:before { 55 | content: "\f10c"; 56 | } 57 | .flaticon-idea:before { 58 | content: "\f10d"; 59 | } 60 | .flaticon-idea-1:before { 61 | content: "\f10e"; 62 | } 63 | .flaticon-tax-free:before { 64 | content: "\f10f"; 65 | } 66 | .flaticon-credit-card:before { 67 | content: "\f110"; 68 | } 69 | .flaticon-bank:before { 70 | content: "\f111"; 71 | } 72 | .flaticon-maintenance:before { 73 | content: "\f112"; 74 | } 75 | .flaticon-clutch-disc:before { 76 | content: "\f113"; 77 | } 78 | .flaticon-rocket:before { 79 | content: "\f114"; 80 | } 81 | .flaticon-copy:before { 82 | content: "\f115"; 83 | } 84 | .flaticon-send:before { 85 | content: "\f116"; 86 | } 87 | .flaticon-clockwise:before { 88 | content: "\f117"; 89 | } 90 | .flaticon-happy:before { 91 | content: "\f118"; 92 | } 93 | .flaticon-quotation-marks:before { 94 | content: "\f119"; 95 | } 96 | -------------------------------------------------------------------------------- /index/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 | -------------------------------------------------------------------------------- /index/font/XRXV3I6Li01BKofIMeaBXso.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Mr-BeanSir/MailDou/ab947ed1a2c6b85f97b0883f8b065a798e518cc6/index/font/XRXV3I6Li01BKofIMeaBXso.woff2 -------------------------------------------------------------------------------- /index/font/XRXV3I6Li01BKofINeaB.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Mr-BeanSir/MailDou/ab947ed1a2c6b85f97b0883f8b065a798e518cc6/index/font/XRXV3I6Li01BKofINeaB.woff2 -------------------------------------------------------------------------------- /index/font/XRXV3I6Li01BKofIO-aBXso.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Mr-BeanSir/MailDou/ab947ed1a2c6b85f97b0883f8b065a798e518cc6/index/font/XRXV3I6Li01BKofIO-aBXso.woff2 -------------------------------------------------------------------------------- /index/font/XRXV3I6Li01BKofIOOaBXso.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Mr-BeanSir/MailDou/ab947ed1a2c6b85f97b0883f8b065a798e518cc6/index/font/XRXV3I6Li01BKofIOOaBXso.woff2 -------------------------------------------------------------------------------- /index/font/XRXV3I6Li01BKofIOuaBXso.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Mr-BeanSir/MailDou/ab947ed1a2c6b85f97b0883f8b065a798e518cc6/index/font/XRXV3I6Li01BKofIOuaBXso.woff2 -------------------------------------------------------------------------------- /index/font/XRXX3I6Li01BKofIMNaDRs4.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Mr-BeanSir/MailDou/ab947ed1a2c6b85f97b0883f8b065a798e518cc6/index/font/XRXX3I6Li01BKofIMNaDRs4.woff2 -------------------------------------------------------------------------------- /index/font/XRXX3I6Li01BKofIMNaHRs71cA.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Mr-BeanSir/MailDou/ab947ed1a2c6b85f97b0883f8b065a798e518cc6/index/font/XRXX3I6Li01BKofIMNaHRs71cA.woff2 -------------------------------------------------------------------------------- /index/font/XRXX3I6Li01BKofIMNaMRs71cA.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Mr-BeanSir/MailDou/ab947ed1a2c6b85f97b0883f8b065a798e518cc6/index/font/XRXX3I6Li01BKofIMNaMRs71cA.woff2 -------------------------------------------------------------------------------- /index/font/XRXX3I6Li01BKofIMNaNRs71cA.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Mr-BeanSir/MailDou/ab947ed1a2c6b85f97b0883f8b065a798e518cc6/index/font/XRXX3I6Li01BKofIMNaNRs71cA.woff2 -------------------------------------------------------------------------------- /index/font/XRXX3I6Li01BKofIMNaORs71cA.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Mr-BeanSir/MailDou/ab947ed1a2c6b85f97b0883f8b065a798e518cc6/index/font/XRXX3I6Li01BKofIMNaORs71cA.woff2 -------------------------------------------------------------------------------- /index/font/fa-brands-400.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Mr-BeanSir/MailDou/ab947ed1a2c6b85f97b0883f8b065a798e518cc6/index/font/fa-brands-400.eot -------------------------------------------------------------------------------- /index/font/fa-brands-400.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Mr-BeanSir/MailDou/ab947ed1a2c6b85f97b0883f8b065a798e518cc6/index/font/fa-brands-400.ttf -------------------------------------------------------------------------------- /index/font/fa-brands-400.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Mr-BeanSir/MailDou/ab947ed1a2c6b85f97b0883f8b065a798e518cc6/index/font/fa-brands-400.woff -------------------------------------------------------------------------------- /index/font/fa-brands-400.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Mr-BeanSir/MailDou/ab947ed1a2c6b85f97b0883f8b065a798e518cc6/index/font/fa-brands-400.woff2 -------------------------------------------------------------------------------- /index/font/fa-regular-400.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Mr-BeanSir/MailDou/ab947ed1a2c6b85f97b0883f8b065a798e518cc6/index/font/fa-regular-400.eot -------------------------------------------------------------------------------- /index/font/fa-regular-400.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Mr-BeanSir/MailDou/ab947ed1a2c6b85f97b0883f8b065a798e518cc6/index/font/fa-regular-400.ttf -------------------------------------------------------------------------------- /index/font/fa-regular-400.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Mr-BeanSir/MailDou/ab947ed1a2c6b85f97b0883f8b065a798e518cc6/index/font/fa-regular-400.woff -------------------------------------------------------------------------------- /index/font/fa-regular-400.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Mr-BeanSir/MailDou/ab947ed1a2c6b85f97b0883f8b065a798e518cc6/index/font/fa-regular-400.woff2 -------------------------------------------------------------------------------- /index/font/fa-solid-900.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Mr-BeanSir/MailDou/ab947ed1a2c6b85f97b0883f8b065a798e518cc6/index/font/fa-solid-900.eot -------------------------------------------------------------------------------- /index/font/fa-solid-900.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Mr-BeanSir/MailDou/ab947ed1a2c6b85f97b0883f8b065a798e518cc6/index/font/fa-solid-900.ttf -------------------------------------------------------------------------------- /index/font/fa-solid-900.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Mr-BeanSir/MailDou/ab947ed1a2c6b85f97b0883f8b065a798e518cc6/index/font/fa-solid-900.woff -------------------------------------------------------------------------------- /index/font/fa-solid-900.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Mr-BeanSir/MailDou/ab947ed1a2c6b85f97b0883f8b065a798e518cc6/index/font/fa-solid-900.woff2 -------------------------------------------------------------------------------- /index/font/flaticon.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Mr-BeanSir/MailDou/ab947ed1a2c6b85f97b0883f8b065a798e518cc6/index/font/flaticon.eot -------------------------------------------------------------------------------- /index/font/flaticon.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Mr-BeanSir/MailDou/ab947ed1a2c6b85f97b0883f8b065a798e518cc6/index/font/flaticon.ttf -------------------------------------------------------------------------------- /index/font/flaticon.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Mr-BeanSir/MailDou/ab947ed1a2c6b85f97b0883f8b065a798e518cc6/index/font/flaticon.woff -------------------------------------------------------------------------------- /index/font/flaticon.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Mr-BeanSir/MailDou/ab947ed1a2c6b85f97b0883f8b065a798e518cc6/index/font/flaticon.woff2 -------------------------------------------------------------------------------- /index/font/pxiByp8kv8JHgFVrLCz7Z11lFc-K.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Mr-BeanSir/MailDou/ab947ed1a2c6b85f97b0883f8b065a798e518cc6/index/font/pxiByp8kv8JHgFVrLCz7Z11lFc-K.woff2 -------------------------------------------------------------------------------- /index/font/pxiByp8kv8JHgFVrLCz7Z1JlFc-K.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Mr-BeanSir/MailDou/ab947ed1a2c6b85f97b0883f8b065a798e518cc6/index/font/pxiByp8kv8JHgFVrLCz7Z1JlFc-K.woff2 -------------------------------------------------------------------------------- /index/font/pxiByp8kv8JHgFVrLCz7Z1xlFQ.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Mr-BeanSir/MailDou/ab947ed1a2c6b85f97b0883f8b065a798e518cc6/index/font/pxiByp8kv8JHgFVrLCz7Z1xlFQ.woff2 -------------------------------------------------------------------------------- /index/font/pxiByp8kv8JHgFVrLDD4Z11lFc-K.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Mr-BeanSir/MailDou/ab947ed1a2c6b85f97b0883f8b065a798e518cc6/index/font/pxiByp8kv8JHgFVrLDD4Z11lFc-K.woff2 -------------------------------------------------------------------------------- /index/font/pxiByp8kv8JHgFVrLDD4Z1JlFc-K.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Mr-BeanSir/MailDou/ab947ed1a2c6b85f97b0883f8b065a798e518cc6/index/font/pxiByp8kv8JHgFVrLDD4Z1JlFc-K.woff2 -------------------------------------------------------------------------------- /index/font/pxiByp8kv8JHgFVrLDD4Z1xlFQ.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Mr-BeanSir/MailDou/ab947ed1a2c6b85f97b0883f8b065a798e518cc6/index/font/pxiByp8kv8JHgFVrLDD4Z1xlFQ.woff2 -------------------------------------------------------------------------------- /index/font/pxiByp8kv8JHgFVrLEj6Z11lFc-K.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Mr-BeanSir/MailDou/ab947ed1a2c6b85f97b0883f8b065a798e518cc6/index/font/pxiByp8kv8JHgFVrLEj6Z11lFc-K.woff2 -------------------------------------------------------------------------------- /index/font/pxiByp8kv8JHgFVrLEj6Z1JlFc-K.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Mr-BeanSir/MailDou/ab947ed1a2c6b85f97b0883f8b065a798e518cc6/index/font/pxiByp8kv8JHgFVrLEj6Z1JlFc-K.woff2 -------------------------------------------------------------------------------- /index/font/pxiByp8kv8JHgFVrLEj6Z1xlFQ.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Mr-BeanSir/MailDou/ab947ed1a2c6b85f97b0883f8b065a798e518cc6/index/font/pxiByp8kv8JHgFVrLEj6Z1xlFQ.woff2 -------------------------------------------------------------------------------- /index/font/pxiByp8kv8JHgFVrLGT9Z11lFc-K.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Mr-BeanSir/MailDou/ab947ed1a2c6b85f97b0883f8b065a798e518cc6/index/font/pxiByp8kv8JHgFVrLGT9Z11lFc-K.woff2 -------------------------------------------------------------------------------- /index/font/pxiByp8kv8JHgFVrLGT9Z1JlFc-K.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Mr-BeanSir/MailDou/ab947ed1a2c6b85f97b0883f8b065a798e518cc6/index/font/pxiByp8kv8JHgFVrLGT9Z1JlFc-K.woff2 -------------------------------------------------------------------------------- /index/font/pxiByp8kv8JHgFVrLGT9Z1xlFQ.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Mr-BeanSir/MailDou/ab947ed1a2c6b85f97b0883f8b065a798e518cc6/index/font/pxiByp8kv8JHgFVrLGT9Z1xlFQ.woff2 -------------------------------------------------------------------------------- /index/font/pxiDyp8kv8JHgFVrJJLmg1hVF9eO.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Mr-BeanSir/MailDou/ab947ed1a2c6b85f97b0883f8b065a798e518cc6/index/font/pxiDyp8kv8JHgFVrJJLmg1hVF9eO.woff2 -------------------------------------------------------------------------------- /index/font/pxiDyp8kv8JHgFVrJJLmg1hVFteOcEg.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Mr-BeanSir/MailDou/ab947ed1a2c6b85f97b0883f8b065a798e518cc6/index/font/pxiDyp8kv8JHgFVrJJLmg1hVFteOcEg.woff2 -------------------------------------------------------------------------------- /index/font/pxiDyp8kv8JHgFVrJJLmg1hVGdeOcEg.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Mr-BeanSir/MailDou/ab947ed1a2c6b85f97b0883f8b065a798e518cc6/index/font/pxiDyp8kv8JHgFVrJJLmg1hVGdeOcEg.woff2 -------------------------------------------------------------------------------- /index/font/pxiDyp8kv8JHgFVrJJLmr19VF9eO.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Mr-BeanSir/MailDou/ab947ed1a2c6b85f97b0883f8b065a798e518cc6/index/font/pxiDyp8kv8JHgFVrJJLmr19VF9eO.woff2 -------------------------------------------------------------------------------- /index/font/pxiDyp8kv8JHgFVrJJLmr19VFteOcEg.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Mr-BeanSir/MailDou/ab947ed1a2c6b85f97b0883f8b065a798e518cc6/index/font/pxiDyp8kv8JHgFVrJJLmr19VFteOcEg.woff2 -------------------------------------------------------------------------------- /index/font/pxiDyp8kv8JHgFVrJJLmr19VGdeOcEg.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Mr-BeanSir/MailDou/ab947ed1a2c6b85f97b0883f8b065a798e518cc6/index/font/pxiDyp8kv8JHgFVrJJLmr19VGdeOcEg.woff2 -------------------------------------------------------------------------------- /index/font/pxiEyp8kv8JHgFVrJJbecmNE.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Mr-BeanSir/MailDou/ab947ed1a2c6b85f97b0883f8b065a798e518cc6/index/font/pxiEyp8kv8JHgFVrJJbecmNE.woff2 -------------------------------------------------------------------------------- /index/font/pxiEyp8kv8JHgFVrJJfecg.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Mr-BeanSir/MailDou/ab947ed1a2c6b85f97b0883f8b065a798e518cc6/index/font/pxiEyp8kv8JHgFVrJJfecg.woff2 -------------------------------------------------------------------------------- /index/font/pxiEyp8kv8JHgFVrJJnecmNE.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Mr-BeanSir/MailDou/ab947ed1a2c6b85f97b0883f8b065a798e518cc6/index/font/pxiEyp8kv8JHgFVrJJnecmNE.woff2 -------------------------------------------------------------------------------- /index/font/pxiGyp8kv8JHgFVrJJLucHtA.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Mr-BeanSir/MailDou/ab947ed1a2c6b85f97b0883f8b065a798e518cc6/index/font/pxiGyp8kv8JHgFVrJJLucHtA.woff2 -------------------------------------------------------------------------------- /index/font/pxiGyp8kv8JHgFVrJJLucXtAKPY.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Mr-BeanSir/MailDou/ab947ed1a2c6b85f97b0883f8b065a798e518cc6/index/font/pxiGyp8kv8JHgFVrJJLucXtAKPY.woff2 -------------------------------------------------------------------------------- /index/font/pxiGyp8kv8JHgFVrJJLufntAKPY.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Mr-BeanSir/MailDou/ab947ed1a2c6b85f97b0883f8b065a798e518cc6/index/font/pxiGyp8kv8JHgFVrJJLufntAKPY.woff2 -------------------------------------------------------------------------------- /index/image/banner_bg.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Mr-BeanSir/MailDou/ab947ed1a2c6b85f97b0883f8b065a798e518cc6/index/image/banner_bg.jpg -------------------------------------------------------------------------------- /index/image/business_bg.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Mr-BeanSir/MailDou/ab947ed1a2c6b85f97b0883f8b065a798e518cc6/index/image/business_bg.png -------------------------------------------------------------------------------- /index/image/faq_img_shape01.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Mr-BeanSir/MailDou/ab947ed1a2c6b85f97b0883f8b065a798e518cc6/index/image/faq_img_shape01.png -------------------------------------------------------------------------------- /index/image/footer_bg.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Mr-BeanSir/MailDou/ab947ed1a2c6b85f97b0883f8b065a798e518cc6/index/image/footer_bg.jpg -------------------------------------------------------------------------------- /index/image/soft_services_hover01.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Mr-BeanSir/MailDou/ab947ed1a2c6b85f97b0883f8b065a798e518cc6/index/image/soft_services_hover01.png -------------------------------------------------------------------------------- /index/image/soft_services_hover02.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Mr-BeanSir/MailDou/ab947ed1a2c6b85f97b0883f8b065a798e518cc6/index/image/soft_services_hover02.png -------------------------------------------------------------------------------- /index/image/soft_services_item01.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Mr-BeanSir/MailDou/ab947ed1a2c6b85f97b0883f8b065a798e518cc6/index/image/soft_services_item01.png -------------------------------------------------------------------------------- /index/image/soft_services_item02.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Mr-BeanSir/MailDou/ab947ed1a2c6b85f97b0883f8b065a798e518cc6/index/image/soft_services_item02.png -------------------------------------------------------------------------------- /index/image/team_bg_shape.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Mr-BeanSir/MailDou/ab947ed1a2c6b85f97b0883f8b065a798e518cc6/index/image/team_bg_shape.png -------------------------------------------------------------------------------- /index/picture/banner_img.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Mr-BeanSir/MailDou/ab947ed1a2c6b85f97b0883f8b065a798e518cc6/index/picture/banner_img.png -------------------------------------------------------------------------------- /index/picture/brand_logo01.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Mr-BeanSir/MailDou/ab947ed1a2c6b85f97b0883f8b065a798e518cc6/index/picture/brand_logo01.png -------------------------------------------------------------------------------- /index/picture/brand_logo02.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Mr-BeanSir/MailDou/ab947ed1a2c6b85f97b0883f8b065a798e518cc6/index/picture/brand_logo02.png -------------------------------------------------------------------------------- /index/picture/brand_logo03.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Mr-BeanSir/MailDou/ab947ed1a2c6b85f97b0883f8b065a798e518cc6/index/picture/brand_logo03.png -------------------------------------------------------------------------------- /index/picture/brand_logo04.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Mr-BeanSir/MailDou/ab947ed1a2c6b85f97b0883f8b065a798e518cc6/index/picture/brand_logo04.png -------------------------------------------------------------------------------- /index/picture/brand_logo05.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Mr-BeanSir/MailDou/ab947ed1a2c6b85f97b0883f8b065a798e518cc6/index/picture/brand_logo05.png -------------------------------------------------------------------------------- /index/picture/features_icon01.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Mr-BeanSir/MailDou/ab947ed1a2c6b85f97b0883f8b065a798e518cc6/index/picture/features_icon01.png -------------------------------------------------------------------------------- /index/picture/features_icon02.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Mr-BeanSir/MailDou/ab947ed1a2c6b85f97b0883f8b065a798e518cc6/index/picture/features_icon02.png -------------------------------------------------------------------------------- /index/picture/features_icon03.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Mr-BeanSir/MailDou/ab947ed1a2c6b85f97b0883f8b065a798e518cc6/index/picture/features_icon03.png -------------------------------------------------------------------------------- /index/picture/features_icon04.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Mr-BeanSir/MailDou/ab947ed1a2c6b85f97b0883f8b065a798e518cc6/index/picture/features_icon04.png -------------------------------------------------------------------------------- /index/picture/features_shape01.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Mr-BeanSir/MailDou/ab947ed1a2c6b85f97b0883f8b065a798e518cc6/index/picture/features_shape01.png -------------------------------------------------------------------------------- /index/picture/features_shape02.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Mr-BeanSir/MailDou/ab947ed1a2c6b85f97b0883f8b065a798e518cc6/index/picture/features_shape02.png -------------------------------------------------------------------------------- /index/picture/feedback_bg.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Mr-BeanSir/MailDou/ab947ed1a2c6b85f97b0883f8b065a798e518cc6/index/picture/feedback_bg.jpg -------------------------------------------------------------------------------- /index/picture/feedback_client01.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Mr-BeanSir/MailDou/ab947ed1a2c6b85f97b0883f8b065a798e518cc6/index/picture/feedback_client01.png -------------------------------------------------------------------------------- /index/picture/feedback_client02.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Mr-BeanSir/MailDou/ab947ed1a2c6b85f97b0883f8b065a798e518cc6/index/picture/feedback_client02.png -------------------------------------------------------------------------------- /index/picture/feedback_img.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Mr-BeanSir/MailDou/ab947ed1a2c6b85f97b0883f8b065a798e518cc6/index/picture/feedback_img.png -------------------------------------------------------------------------------- /index/picture/feedback_img02.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Mr-BeanSir/MailDou/ab947ed1a2c6b85f97b0883f8b065a798e518cc6/index/picture/feedback_img02.jpg -------------------------------------------------------------------------------- /index/picture/fw_logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Mr-BeanSir/MailDou/ab947ed1a2c6b85f97b0883f8b065a798e518cc6/index/picture/fw_logo.png -------------------------------------------------------------------------------- /index/picture/india.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Mr-BeanSir/MailDou/ab947ed1a2c6b85f97b0883f8b065a798e518cc6/index/picture/india.png -------------------------------------------------------------------------------- /index/picture/kb_slider_shape01.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Mr-BeanSir/MailDou/ab947ed1a2c6b85f97b0883f8b065a798e518cc6/index/picture/kb_slider_shape01.png -------------------------------------------------------------------------------- /index/picture/kb_slider_shape02.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Mr-BeanSir/MailDou/ab947ed1a2c6b85f97b0883f8b065a798e518cc6/index/picture/kb_slider_shape02.png -------------------------------------------------------------------------------- /index/picture/kb_slider_shape03.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Mr-BeanSir/MailDou/ab947ed1a2c6b85f97b0883f8b065a798e518cc6/index/picture/kb_slider_shape03.png -------------------------------------------------------------------------------- /index/picture/kb_slider_shape04.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Mr-BeanSir/MailDou/ab947ed1a2c6b85f97b0883f8b065a798e518cc6/index/picture/kb_slider_shape04.png -------------------------------------------------------------------------------- /index/picture/kb_slider_shape05.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Mr-BeanSir/MailDou/ab947ed1a2c6b85f97b0883f8b065a798e518cc6/index/picture/kb_slider_shape05.png -------------------------------------------------------------------------------- /index/picture/kb_slider_shape06.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Mr-BeanSir/MailDou/ab947ed1a2c6b85f97b0883f8b065a798e518cc6/index/picture/kb_slider_shape06.png -------------------------------------------------------------------------------- /index/picture/kb_slider_shape07.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Mr-BeanSir/MailDou/ab947ed1a2c6b85f97b0883f8b065a798e518cc6/index/picture/kb_slider_shape07.png -------------------------------------------------------------------------------- /index/picture/kb_slider_shape08.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Mr-BeanSir/MailDou/ab947ed1a2c6b85f97b0883f8b065a798e518cc6/index/picture/kb_slider_shape08.png -------------------------------------------------------------------------------- /index/picture/kb_slider_shape09.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Mr-BeanSir/MailDou/ab947ed1a2c6b85f97b0883f8b065a798e518cc6/index/picture/kb_slider_shape09.png -------------------------------------------------------------------------------- /index/picture/logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Mr-BeanSir/MailDou/ab947ed1a2c6b85f97b0883f8b065a798e518cc6/index/picture/logo.png -------------------------------------------------------------------------------- /index/picture/russia.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Mr-BeanSir/MailDou/ab947ed1a2c6b85f97b0883f8b065a798e518cc6/index/picture/russia.png -------------------------------------------------------------------------------- /index/picture/support_img.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Mr-BeanSir/MailDou/ab947ed1a2c6b85f97b0883f8b065a798e518cc6/index/picture/support_img.png -------------------------------------------------------------------------------- /index/picture/thailand.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Mr-BeanSir/MailDou/ab947ed1a2c6b85f97b0883f8b065a798e518cc6/index/picture/thailand.png -------------------------------------------------------------------------------- /index/picture/trial_shape01.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Mr-BeanSir/MailDou/ab947ed1a2c6b85f97b0883f8b065a798e518cc6/index/picture/trial_shape01.png -------------------------------------------------------------------------------- /index/picture/trial_shape02.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Mr-BeanSir/MailDou/ab947ed1a2c6b85f97b0883f8b065a798e518cc6/index/picture/trial_shape02.png -------------------------------------------------------------------------------- /index/picture/united-states.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Mr-BeanSir/MailDou/ab947ed1a2c6b85f97b0883f8b065a798e518cc6/index/picture/united-states.png -------------------------------------------------------------------------------- /maildou.sql: -------------------------------------------------------------------------------- 1 | /* 2 | Navicat Premium Data Transfer 3 | 4 | Source Server : maildou 5 | Source Server Type : MySQL 6 | Source Server Version : 50726 7 | Source Host : localhost:3306 8 | Source Schema : maildou 9 | 10 | Target Server Type : MySQL 11 | Target Server Version : 50726 12 | File Encoding : 65001 13 | 14 | Date: 10/10/2023 23:25:53 15 | */ 16 | 17 | SET NAMES utf8mb4; 18 | SET FOREIGN_KEY_CHECKS = 0; 19 | 20 | -- ---------------------------- 21 | -- Table structure for mail 22 | -- ---------------------------- 23 | DROP TABLE IF EXISTS `mail`; 24 | CREATE TABLE `mail` ( 25 | `id` int(20) NOT NULL AUTO_INCREMENT, 26 | `userid` int(30) NULL DEFAULT NULL, 27 | `username` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL, 28 | `mail` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL, 29 | `token` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL, 30 | PRIMARY KEY (`id`, `mail`) USING BTREE, 31 | INDEX `t`(`token`) USING BTREE 32 | ) ENGINE = MyISAM AUTO_INCREMENT = 97 CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = Dynamic; 33 | 34 | -- ---------------------------- 35 | -- Table structure for user 36 | -- ---------------------------- 37 | DROP TABLE IF EXISTS `user`; 38 | CREATE TABLE `user` ( 39 | `id` int(11) NOT NULL, 40 | `username` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL, 41 | `token` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL, 42 | PRIMARY KEY (`id`, `username`) USING BTREE, 43 | INDEX `token`(`token`) USING BTREE 44 | ) ENGINE = MyISAM CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = Dynamic; 45 | 46 | SET FOREIGN_KEY_CHECKS = 1; 47 | -------------------------------------------------------------------------------- /main.go: -------------------------------------------------------------------------------- 1 | package main 2 | 3 | import ( 4 | "github.com/gin-contrib/sessions" 5 | "github.com/gin-contrib/sessions/cookie" 6 | "github.com/gin-gonic/gin" 7 | "yxd/route" 8 | ) 9 | 10 | func main() { 11 | r := gin.Default() 12 | //设置session基础配置 13 | store := cookie.NewStore([]byte("test")) 14 | r.Use(sessions.Sessions("yxdou", store)) 15 | //读入模板文件 16 | r.LoadHTMLGlob("./template/**/*") 17 | //设置静态文件路径索引 18 | r.Static("/static", "./static") 19 | r.Static("/index", "./index") 20 | //设置首页路由 21 | route.IndexRoute(r) 22 | //设置登录注册页路由 23 | route.UserRoute(r) 24 | //注册控制面板路由 25 | route.DashboardRoute(r) 26 | //注册邮件阅读相关路由 27 | route.Mail(r) 28 | r.Run(":8080") 29 | } 30 | -------------------------------------------------------------------------------- /modle/MailModle.go: -------------------------------------------------------------------------------- 1 | package modle 2 | 3 | import ( 4 | "github.com/emersion/go-imap/client" 5 | "yxd/conf" 6 | ) 7 | 8 | func ConnectMail() (*client.Client, error) { 9 | dial, err := client.Dial(conf.GetServ()) 10 | if err != nil { 11 | return nil, err 12 | } 13 | return dial, err 14 | 15 | } 16 | 17 | func LoginMail(c *client.Client, username string, password string) error { 18 | err := c.Login(username, password) 19 | if err != nil { 20 | return err 21 | } 22 | return nil 23 | } 24 | -------------------------------------------------------------------------------- /modle/accountModle.go: -------------------------------------------------------------------------------- 1 | package modle 2 | 3 | import ( 4 | "github.com/gin-contrib/sessions" 5 | "yxd/conf" 6 | ) 7 | 8 | type a struct { 9 | num int 10 | } 11 | // 12 | // IsOk 13 | // @ 判断用户信息是否实时正确 14 | // @param s 15 | // @return bool 16 | // 17 | func IsOk(s sessions.Session) bool { 18 | db, err := conf.SqlConn() 19 | if err != nil { 20 | return false 21 | } 22 | defer db.Close() 23 | stmt, err := db.Prepare("SELECT COUNT(*) from user where id = ? and username = ? and token = ? LIMIT 1") 24 | if err != nil { 25 | return false 26 | } 27 | var b a 28 | stmt.QueryRow(s.Get("id"),s.Get("username"),s.Get("token")).Scan(&b.num) 29 | if b.num == 1 { 30 | return true 31 | } 32 | return false 33 | } 34 | -------------------------------------------------------------------------------- /readme.md: -------------------------------------------------------------------------------- 1 | ## 邮小豆 2 | 3 |  4 | 5 | #### 如何使用? 6 | 7 | ``` 8 | git clone https://github.com/Mr-BeanSir/MailDou 9 | cd MailDou 10 | go mod tidy 11 | ``` 12 | 13 | 新建数据库,导入根目录下maildou.sql 14 | 15 | 安装宝塔邮局插件,配置api和白名单 16 | 17 | 修改conf目录下 btApi.go、conf.go、sqlConn.go 文件 18 | 19 | ``` 20 | go build mail.go 21 | mail.exe 22 | ``` 23 | 24 | #### 登录/注册 25 | 26 | http://localhost:8080/user/login?a=时间戳&b=用户名&c=TOKEN&d=计算md5&e=用户ID 27 | 28 | 计算md5:conf-conf.go-regkey + TOKEN + 时间戳 29 | 30 | ## 说明 31 | 32 | 程序本意提供go语言有关邮箱的库使用及代码参考,不推荐公开搭建使用 -------------------------------------------------------------------------------- /route/dashboardRoute.go: -------------------------------------------------------------------------------- 1 | package route 2 | 3 | import ( 4 | "github.com/gin-gonic/gin" 5 | middleware "yxd/Middleware" 6 | "yxd/controller" 7 | ) 8 | 9 | func DashboardRoute(r *gin.Engine) { 10 | g := r.Group("/dashboard", middleware.Auth) 11 | { 12 | g.GET("", controller.DashboardIndex) 13 | g.POST("/c_email", controller.DashboardCreateEmail) 14 | g.GET("/d_email/:email", controller.DashboardDeleteEmail) 15 | g.POST("transfer", controller.DashboardTransfer) 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /route/emailRoute.go: -------------------------------------------------------------------------------- 1 | package route 2 | 3 | import ( 4 | "github.com/gin-gonic/gin" 5 | middleware "yxd/Middleware" 6 | "yxd/controller" 7 | ) 8 | 9 | func Mail(r *gin.Engine) { 10 | g := r.Group("/mail", middleware.Auth) 11 | { 12 | g.POST("", controller.IndexMail) 13 | g.GET("/list/:type", controller.ListMail) 14 | g.GET("/read/:type/:id", controller.ReadMail) 15 | g.GET("/del/:type/:id", controller.DelMail) 16 | g.GET("/content/:type/:id", controller.Html) 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /route/indexRoute.go: -------------------------------------------------------------------------------- 1 | package route 2 | 3 | import ( 4 | "github.com/gin-gonic/gin" 5 | "net/http" 6 | ) 7 | 8 | func IndexRoute(r *gin.Engine) { 9 | g := r.Group("/") 10 | { 11 | g.GET("/", 12 | func(c *gin.Context) { 13 | c.HTML(http.StatusOK, "index/index.html", gin.H{ 14 | "people": "0+", 15 | }) 16 | }) 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /static/css/bootstrap-timepicker.min.css: -------------------------------------------------------------------------------- 1 | /*! 2 | * Timepicker Component for Twitter Bootstrap 3 | * 4 | * Copyright 2013 Joris de Wit 5 | * 6 | * Contributors https://github.com/jdewit/bootstrap-timepicker/graphs/contributors 7 | * 8 | * For the full copyright and license information, please view the LICENSE 9 | * file that was distributed with this source code. 10 | */.bootstrap-timepicker{position:relative}.bootstrap-timepicker.pull-right .bootstrap-timepicker-widget.dropdown-menu{left:auto;right:0}.bootstrap-timepicker.pull-right .bootstrap-timepicker-widget.dropdown-menu:before{left:auto;right:12px}.bootstrap-timepicker.pull-right .bootstrap-timepicker-widget.dropdown-menu:after{left:auto;right:13px}.bootstrap-timepicker .input-group-addon{cursor:pointer}.bootstrap-timepicker .input-group-addon i{display:inline-block;width:16px;height:16px}.bootstrap-timepicker-widget.dropdown-menu{padding:4px}.bootstrap-timepicker-widget.dropdown-menu.open{display:inline-block}.bootstrap-timepicker-widget.dropdown-menu:before{border-bottom:7px solid rgba(0,0,0,0.2);border-left:7px solid transparent;border-right:7px solid transparent;content:"";display:inline-block;position:absolute}.bootstrap-timepicker-widget.dropdown-menu:after{border-bottom:6px solid #fff;border-left:6px solid transparent;border-right:6px solid transparent;content:"";display:inline-block;position:absolute}.bootstrap-timepicker-widget.timepicker-orient-left:before{left:6px}.bootstrap-timepicker-widget.timepicker-orient-left:after{left:7px}.bootstrap-timepicker-widget.timepicker-orient-right:before{right:6px}.bootstrap-timepicker-widget.timepicker-orient-right:after{right:7px}.bootstrap-timepicker-widget.timepicker-orient-top:before{top:-7px}.bootstrap-timepicker-widget.timepicker-orient-top:after{top:-6px}.bootstrap-timepicker-widget.timepicker-orient-bottom:before{bottom:-7px;border-bottom:0;border-top:7px solid #999}.bootstrap-timepicker-widget.timepicker-orient-bottom:after{bottom:-6px;border-bottom:0;border-top:6px solid #fff}.bootstrap-timepicker-widget a.btn,.bootstrap-timepicker-widget input{border-radius:4px}.bootstrap-timepicker-widget table{width:100%;margin:0}.bootstrap-timepicker-widget table td{text-align:center;height:30px;margin:0;padding:2px}.bootstrap-timepicker-widget table td:not(.separator){min-width:30px}.bootstrap-timepicker-widget table td span{width:100%}.bootstrap-timepicker-widget table td a{border:1px transparent solid;width:100%;display:inline-block;margin:0;padding:8px 0;outline:0;color:#333}.bootstrap-timepicker-widget table td a:hover{text-decoration:none;background-color:#eee;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;border-color:#ddd}.bootstrap-timepicker-widget table td a i{margin-top:2px;font-size:18px}.bootstrap-timepicker-widget table td input{width:25px;margin:0;text-align:center}.bootstrap-timepicker-widget .modal-content{padding:4px}@media(min-width:767px){.bootstrap-timepicker-widget.modal{width:200px;margin-left:-100px}}@media(max-width:767px){.bootstrap-timepicker{width:100%}.bootstrap-timepicker .dropdown-menu{width:100%}} -------------------------------------------------------------------------------- /static/css/css2.css: -------------------------------------------------------------------------------- 1 | /* thai */ 2 | @font-face { 3 | font-family: 'Chakra Petch'; 4 | font-style: normal; 5 | font-weight: 300; 6 | font-display: swap; 7 | src: url(../font/cIflMapbsEk7TDLdtEz1BwkeNIh1U5_F7AY.woff2) format('woff2'); 8 | unicode-range: U+0E01-0E5B, U+200C-200D, U+25CC; 9 | } 10 | /* vietnamese */ 11 | @font-face { 12 | font-family: 'Chakra Petch'; 13 | font-style: normal; 14 | font-weight: 300; 15 | font-display: swap; 16 | src: url(../font/cIflMapbsEk7TDLdtEz1BwkeNIh1SJ_F7AY.woff2) format('woff2'); 17 | unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+1EA0-1EF9, U+20AB; 18 | } 19 | /* latin-ext */ 20 | @font-face { 21 | font-family: 'Chakra Petch'; 22 | font-style: normal; 23 | font-weight: 300; 24 | font-display: swap; 25 | src: url(../font/cIflMapbsEk7TDLdtEz1BwkeNIh1SZ_F7AY.woff2) format('woff2'); 26 | unicode-range: U+0100-024F, U+0259, U+1E00-1EFF, U+2020, U+20A0-20AB, U+20AD-20CF, U+2113, U+2C60-2C7F, U+A720-A7FF; 27 | } 28 | /* latin */ 29 | @font-face { 30 | font-family: 'Chakra Petch'; 31 | font-style: normal; 32 | font-weight: 300; 33 | font-display: swap; 34 | src: url(../font/cIflMapbsEk7TDLdtEz1BwkeNIh1R5_F.woff2) format('woff2'); 35 | unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; 36 | } 37 | /* thai */ 38 | @font-face { 39 | font-family: 'Chakra Petch'; 40 | font-style: normal; 41 | font-weight: 500; 42 | font-display: swap; 43 | src: url(../font/cIflMapbsEk7TDLdtEz1BwkebIl1U5_F7AY.woff2) format('woff2'); 44 | unicode-range: U+0E01-0E5B, U+200C-200D, U+25CC; 45 | } 46 | /* vietnamese */ 47 | @font-face { 48 | font-family: 'Chakra Petch'; 49 | font-style: normal; 50 | font-weight: 500; 51 | font-display: swap; 52 | src: url(../font/cIflMapbsEk7TDLdtEz1BwkebIl1SJ_F7AY.woff2) format('woff2'); 53 | unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+1EA0-1EF9, U+20AB; 54 | } 55 | /* latin-ext */ 56 | @font-face { 57 | font-family: 'Chakra Petch'; 58 | font-style: normal; 59 | font-weight: 500; 60 | font-display: swap; 61 | src: url(../font/cIflMapbsEk7TDLdtEz1BwkebIl1SZ_F7AY.woff2) format('woff2'); 62 | unicode-range: U+0100-024F, U+0259, U+1E00-1EFF, U+2020, U+20A0-20AB, U+20AD-20CF, U+2113, U+2C60-2C7F, U+A720-A7FF; 63 | } 64 | /* latin */ 65 | @font-face { 66 | font-family: 'Chakra Petch'; 67 | font-style: normal; 68 | font-weight: 500; 69 | font-display: swap; 70 | src: url(../font/cIflMapbsEk7TDLdtEz1BwkebIl1R5_F.woff2) format('woff2'); 71 | unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; 72 | } 73 | -------------------------------------------------------------------------------- /static/css/jquery.countdown.css: -------------------------------------------------------------------------------- 1 | .is-countdown{border:1px solid #ccc;background-color:#eee}.countdown-rtl{direction:rtl}.countdown-holding span{color:#888}.countdown-row{clear:both;width:100%;padding:0 2px;text-align:center}.countdown-show1 .countdown-section{width:98%}.countdown-show2 .countdown-section{width:48%}.countdown-show3 .countdown-section{width:32.5%}.countdown-show4 .countdown-section{width:24.5%}.countdown-show5 .countdown-section{width:19.5%}.countdown-show6 .countdown-section{width:16.25%}.countdown-show7 .countdown-section{width:14%}.countdown-section{display:block;float:left;font-size:75%;text-align:center}.countdown-amount{font-size:200%}.countdown-period{display:block}.countdown-descr{display:block;width:100%} -------------------------------------------------------------------------------- /static/css/jquery.fileupload.css: -------------------------------------------------------------------------------- 1 | .fileinput-button{position:relative;overflow:hidden;display:inline-block}.fileinput-button input{position:absolute;top:0;right:0;margin:0;height:100%;opacity:0;filter:alpha(opacity=0);font-size:200px!important;direction:ltr;cursor:pointer}@media screen\9 {.fileinput-button input{font-size:150%!important}} -------------------------------------------------------------------------------- /static/css/jquery.tagit.css: -------------------------------------------------------------------------------- 1 | ul.tagit{padding:1px 5px;overflow:auto;margin-left:inherit;margin-right:inherit}ul.tagit li{display:block;float:left;margin:2px 5px 2px 0}ul.tagit li.tagit-choice{position:relative;line-height:inherit}input.tagit-hidden-field{display:none}ul.tagit li.tagit-choice-read-only{padding:.2em .5em}ul.tagit li.tagit-choice-editable{padding:.2em 18px .2em .5em}ul.tagit li.tagit-new{padding:.25em 4px .25em 0}ul.tagit li.tagit-choice a.tagit-label{cursor:pointer;text-decoration:none}ul.tagit li.tagit-choice .tagit-close{cursor:pointer;position:absolute;right:.1em;top:50%;margin-top:-8px;line-height:17px}ul.tagit li.tagit-choice .tagit-close .text-icon{display:none}ul.tagit li.tagit-choice input{display:block;float:left;margin:2px 5px 2px 0}ul.tagit input[type=text]{-moz-box-sizing:border-box;-webkit-box-sizing:border-box;box-sizing:border-box;-moz-box-shadow:none;-webkit-box-shadow:none;box-shadow:none;border:none;margin:0;padding:0;width:inherit;background-color:inherit;outline:none} -------------------------------------------------------------------------------- /static/css/lity.min.css: -------------------------------------------------------------------------------- 1 | /*! Lity - v2.4.1 - 2020-04-26 2 | * http://sorgalla.com/lity/ 3 | * Copyright (c) 2015-2020 Jan Sorgalla; Licensed MIT */.lity{z-index:9990;position:fixed;top:0;right:0;bottom:0;left:0;white-space:nowrap;background:#0b0b0b;background:rgba(0,0,0,0.9);outline:none !important;opacity:0;-webkit-transition:opacity .3s ease;-o-transition:opacity .3s ease;transition:opacity .3s ease}.lity.lity-opened{opacity:1}.lity.lity-closed{opacity:0}.lity *{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.lity-wrap{z-index:9990;position:fixed;top:0;right:0;bottom:0;left:0;text-align:center;outline:none !important}.lity-wrap:before{content:'';display:inline-block;height:100%;vertical-align:middle;margin-right:-0.25em}.lity-loader{z-index:9991;color:#fff;position:absolute;top:50%;margin-top:-0.8em;width:100%;text-align:center;font-size:14px;font-family:Arial,Helvetica,sans-serif;opacity:0;-webkit-transition:opacity .3s ease;-o-transition:opacity .3s ease;transition:opacity .3s ease}.lity-loading .lity-loader{opacity:1}.lity-container{z-index:9992;position:relative;text-align:left;vertical-align:middle;display:inline-block;white-space:normal;max-width:100%;max-height:100%;outline:none !important}.lity-content{z-index:9993;width:100%;-webkit-transform:scale(1);-ms-transform:scale(1);-o-transform:scale(1);transform:scale(1);-webkit-transition:-webkit-transform .3s ease;transition:-webkit-transform .3s ease;-o-transition:-o-transform .3s ease;transition:transform .3s ease;transition:transform .3s ease, -webkit-transform .3s ease, -o-transform .3s ease}.lity-loading .lity-content,.lity-closed .lity-content{-webkit-transform:scale(.8);-ms-transform:scale(.8);-o-transform:scale(.8);transform:scale(.8)}.lity-content:after{content:'';position:absolute;left:0;top:0;bottom:0;display:block;right:0;width:auto;height:auto;z-index:-1;-webkit-box-shadow:0 0 8px rgba(0,0,0,0.6);box-shadow:0 0 8px rgba(0,0,0,0.6)}.lity-close{z-index:9994;width:35px;height:35px;position:fixed;right:0;top:0;-webkit-appearance:none;cursor:pointer;text-decoration:none;text-align:center;padding:0;color:#fff;font-style:normal;font-size:35px;font-family:Arial,Baskerville,monospace;line-height:35px;text-shadow:0 1px 2px rgba(0,0,0,0.6);border:0;background:none;outline:none;-webkit-box-shadow:none;box-shadow:none}.lity-close::-moz-focus-inner{border:0;padding:0}.lity-close:hover,.lity-close:focus,.lity-close:active,.lity-close:visited{text-decoration:none;text-align:center;padding:0;color:#fff;font-style:normal;font-size:35px;font-family:Arial,Baskerville,monospace;line-height:35px;text-shadow:0 1px 2px rgba(0,0,0,0.6);border:0;background:none;outline:none;-webkit-box-shadow:none;box-shadow:none}.lity-close:active{top:1px}.lity-image img{max-width:100%;display:block;line-height:0;border:0}.lity-iframe .lity-container,.lity-youtube .lity-container,.lity-vimeo .lity-container,.lity-facebookvideo .lity-container,.lity-googlemaps .lity-container{width:100%;max-width:964px}.lity-iframe-container{width:100%;height:0;padding-top:56.25%;overflow:auto;pointer-events:auto;-webkit-transform:translateZ(0);transform:translateZ(0);-webkit-overflow-scrolling:touch}.lity-iframe-container iframe{position:absolute;display:block;top:0;left:0;width:100%;height:100%;-webkit-box-shadow:0 0 8px rgba(0,0,0,0.6);box-shadow:0 0 8px rgba(0,0,0,0.6);background:#000}.lity-hide{display:none} -------------------------------------------------------------------------------- /static/css/main.min1.css: -------------------------------------------------------------------------------- 1 | :root{--fc-daygrid-event-dot-width:8px}.fc-daygrid-day-events:after,.fc-daygrid-day-events:before,.fc-daygrid-day-frame:after,.fc-daygrid-day-frame:before,.fc-daygrid-event-harness:after,.fc-daygrid-event-harness:before{content:"";clear:both;display:table}.fc .fc-daygrid-body{position:relative;z-index:1}.fc .fc-daygrid-day.fc-day-today{background-color:rgba(255,220,40,.15);background-color:var(--fc-today-bg-color,rgba(255,220,40,.15))}.fc .fc-daygrid-day-frame{position:relative;min-height:100%}.fc .fc-daygrid-day-top{display:flex;flex-direction:row-reverse}.fc .fc-day-other .fc-daygrid-day-top{opacity:.3}.fc .fc-daygrid-day-number{position:relative;z-index:4;padding:4px}.fc .fc-daygrid-day-events{margin-top:1px}.fc .fc-daygrid-body-balanced .fc-daygrid-day-events{position:absolute;left:0;right:0}.fc .fc-daygrid-body-unbalanced .fc-daygrid-day-events{position:relative;min-height:2em}.fc .fc-daygrid-body-natural .fc-daygrid-day-events{margin-bottom:1em}.fc .fc-daygrid-event-harness{position:relative}.fc .fc-daygrid-event-harness-abs{position:absolute;top:0;left:0;right:0}.fc .fc-daygrid-bg-harness{position:absolute;top:0;bottom:0}.fc .fc-daygrid-day-bg .fc-non-business{z-index:1}.fc .fc-daygrid-day-bg .fc-bg-event{z-index:2}.fc .fc-daygrid-day-bg .fc-highlight{z-index:3}.fc .fc-daygrid-event{z-index:6;margin-top:1px}.fc .fc-daygrid-event.fc-event-mirror{z-index:7}.fc .fc-daygrid-day-bottom{font-size:.85em;padding:2px 3px 0}.fc .fc-daygrid-day-bottom:before{content:"";clear:both;display:table}.fc .fc-daygrid-more-link{position:relative;z-index:4;cursor:pointer}.fc .fc-daygrid-week-number{position:absolute;z-index:5;top:0;padding:2px;min-width:1.5em;text-align:center;background-color:rgba(208,208,208,.3);background-color:var(--fc-neutral-bg-color,rgba(208,208,208,.3));color:grey;color:var(--fc-neutral-text-color,grey)}.fc .fc-more-popover .fc-popover-body{min-width:220px;padding:10px}.fc-direction-ltr .fc-daygrid-event.fc-event-start,.fc-direction-rtl .fc-daygrid-event.fc-event-end{margin-left:2px}.fc-direction-ltr .fc-daygrid-event.fc-event-end,.fc-direction-rtl .fc-daygrid-event.fc-event-start{margin-right:2px}.fc-direction-ltr .fc-daygrid-week-number{left:0;border-radius:0 0 3px}.fc-direction-rtl .fc-daygrid-week-number{right:0;border-radius:0 0 0 3px}.fc-liquid-hack .fc-daygrid-day-frame{position:static}.fc-daygrid-event{position:relative;white-space:nowrap;border-radius:3px;font-size:.85em;font-size:var(--fc-small-font-size,.85em)}.fc-daygrid-block-event .fc-event-time{font-weight:700}.fc-daygrid-block-event .fc-event-time,.fc-daygrid-block-event .fc-event-title{padding:1px}.fc-daygrid-dot-event{display:flex;align-items:center;padding:2px 0}.fc-daygrid-dot-event .fc-event-title{flex-grow:1;flex-shrink:1;min-width:0;overflow:hidden;font-weight:700}.fc-daygrid-dot-event.fc-event-mirror,.fc-daygrid-dot-event:hover{background:rgba(0,0,0,.1)}.fc-daygrid-dot-event.fc-event-selected:before{top:-10px;bottom:-10px}.fc-daygrid-event-dot{margin:0 4px;box-sizing:content-box;width:0;height:0;border:4px solid #3788d8;border:calc(var(--fc-daygrid-event-dot-width,8px)/ 2) solid var(--fc-event-border-color,#3788d8);border-radius:4px;border-radius:calc(var(--fc-daygrid-event-dot-width,8px)/ 2)}.fc-direction-ltr .fc-daygrid-event .fc-event-time{margin-right:3px}.fc-direction-rtl .fc-daygrid-event .fc-event-time{margin-left:3px} -------------------------------------------------------------------------------- /static/css/main.min3.css: -------------------------------------------------------------------------------- 1 | :root{--fc-list-event-dot-width:10px;--fc-list-event-hover-bg-color:#f5f5f5}.fc-theme-standard .fc-list{border:1px solid #ddd;border:1px solid var(--fc-border-color,#ddd)}.fc .fc-list-empty{background-color:rgba(208,208,208,.3);background-color:var(--fc-neutral-bg-color,rgba(208,208,208,.3));height:100%;display:flex;justify-content:center;align-items:center}.fc .fc-list-empty-cushion{margin:5em 0}.fc .fc-list-table{width:100%;border-style:hidden}.fc .fc-list-table tr>*{border-left:0;border-right:0}.fc .fc-list-sticky .fc-list-day>*{position:sticky;top:0;background:var(--fc-page-bg-color,#fff)}.fc .fc-list-table thead{position:absolute;left:-10000px}.fc .fc-list-table tbody>tr:first-child th{border-top:0}.fc .fc-list-table th{padding:0}.fc .fc-list-day-cushion,.fc .fc-list-table td{padding:8px 14px}.fc .fc-list-day-cushion:after{content:"";clear:both;display:table}.fc-theme-standard .fc-list-day-cushion{background-color:rgba(208,208,208,.3);background-color:var(--fc-neutral-bg-color,rgba(208,208,208,.3))}.fc-direction-ltr .fc-list-day-text,.fc-direction-rtl .fc-list-day-side-text{float:left}.fc-direction-ltr .fc-list-day-side-text,.fc-direction-rtl .fc-list-day-text{float:right}.fc-direction-ltr .fc-list-table .fc-list-event-graphic{padding-right:0}.fc-direction-rtl .fc-list-table .fc-list-event-graphic{padding-left:0}.fc .fc-list-event.fc-event-forced-url{cursor:pointer}.fc .fc-list-event:hover td{background-color:#f5f5f5;background-color:var(--fc-list-event-hover-bg-color,#f5f5f5)}.fc .fc-list-event-graphic,.fc .fc-list-event-time{white-space:nowrap;width:1px}.fc .fc-list-event-dot{display:inline-block;box-sizing:content-box;width:0;height:0;border:5px solid #3788d8;border:calc(var(--fc-list-event-dot-width,10px)/ 2) solid var(--fc-event-border-color,#3788d8);border-radius:5px;border-radius:calc(var(--fc-list-event-dot-width,10px)/ 2)}.fc .fc-list-event-title a{color:inherit;text-decoration:none}.fc .fc-list-event.fc-event-forced-url:hover a{text-decoration:underline} -------------------------------------------------------------------------------- /static/css/main.min4.css: -------------------------------------------------------------------------------- 1 | .fc-theme-bootstrap a:not([href]){color:inherit} -------------------------------------------------------------------------------- /static/css/photoswipe.css: -------------------------------------------------------------------------------- 1 | /*!PhotoSwipe main CSS by Dmitry Semenov | photoswipe.com | MIT license*/.pswp{display:none;position:absolute;width:100%;height:100%;left:0;top:0;overflow:hidden;-ms-touch-action:none;touch-action:none;z-index:1500;-webkit-text-size-adjust:100%;-webkit-backface-visibility:hidden;outline:none}.pswp *{-webkit-box-sizing:border-box;box-sizing:border-box}.pswp img{max-width:none}.pswp--animate_opacity{opacity:.001;will-change:opacity;-webkit-transition:opacity 333ms cubic-bezier(.4,0,.22,1);transition:opacity 333ms cubic-bezier(.4,0,.22,1)}.pswp--open{display:block}.pswp--zoom-allowed .pswp__img{cursor:-webkit-zoom-in;cursor:-moz-zoom-in;cursor:zoom-in}.pswp--zoomed-in .pswp__img{cursor:-webkit-grab;cursor:-moz-grab;cursor:grab}.pswp--dragging .pswp__img{cursor:-webkit-grabbing;cursor:-moz-grabbing;cursor:grabbing}.pswp__bg{position:absolute;left:0;top:0;width:100%;height:100%;background:#000;opacity:0;-webkit-transform:translateZ(0);transform:translateZ(0);-webkit-backface-visibility:hidden;will-change:opacity}.pswp__scroll-wrap{position:absolute;left:0;top:0;width:100%;height:100%;overflow:hidden}.pswp__container,.pswp__zoom-wrap{-ms-touch-action:none;touch-action:none;position:absolute;left:0;right:0;top:0;bottom:0}.pswp__container,.pswp__img{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent;-webkit-touch-callout:none}.pswp__zoom-wrap{position:absolute;width:100%;-webkit-transform-origin:left top;-ms-transform-origin:left top;transform-origin:left top;-webkit-transition:-webkit-transform 333ms cubic-bezier(.4,0,.22,1);transition:transform 333ms cubic-bezier(.4,0,.22,1)}.pswp__bg{will-change:opacity;-webkit-transition:opacity 333ms cubic-bezier(.4,0,.22,1);transition:opacity 333ms cubic-bezier(.4,0,.22,1)}.pswp--animated-in .pswp__bg,.pswp--animated-in .pswp__zoom-wrap{-webkit-transition:none;transition:none}.pswp__container,.pswp__zoom-wrap{-webkit-backface-visibility:hidden}.pswp__item{position:absolute;left:0;right:0;top:0;bottom:0;overflow:hidden}.pswp__img{position:absolute;width:auto;height:auto;top:0;left:0}.pswp__img--placeholder{-webkit-backface-visibility:hidden}.pswp__img--placeholder--blank{background:#222}.pswp--ie .pswp__img{width:100%!important;height:auto!important;left:0;top:0}.pswp__error-msg{position:absolute;left:0;top:50%;width:100%;text-align:center;font-size:14px;line-height:16px;margin-top:-8px;color:#ccc}.pswp__error-msg a{color:#ccc;text-decoration:underline} -------------------------------------------------------------------------------- /static/css/picker.min.css: -------------------------------------------------------------------------------- 1 | .picker{display:inline-block;vertical-align:middle}.picker .pc-element,.picker .pc-trigger{display:inline-block;color:#666;position:relative;z-index:10;border:1px solid #666;border-radius:2px;word-wrap:break-word;cursor:default;background-color:#fff;margin-right:7px;margin-bottom:5px;padding:0 24px 0 6px;-webkit-touch-callout:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.picker .pc-element .pc-close,.picker .pc-trigger .pc-close{position:absolute;top:50%;right:4px;margin-top:-10px;font-size:16px;cursor:pointer}.picker .pc-element .pc-close:after,.picker .pc-trigger .pc-close:after{content:'\2716'}.picker .pc-element:hover,.picker .pc-trigger:hover{background-color:#666;color:#fff}.picker .pc-select{position:relative;display:inline-block;min-width:165px;max-width:200px}.picker .pc-select .pc-trigger{cursor:pointer;margin-right:0;width:100%}.picker .pc-select .pc-list{position:absolute;text-align:left;left:0;top:calc(100% - 6px);width:100%;border:1px solid #666;z-index:11;background-color:#fff}.picker .pc-select .pc-list input[type=search]{width:100%;outline:0;color:#666;border:none;position:relative;background-color:#DDD;border-bottom:2px solid #666;padding-left:8px}.picker .pc-select .pc-list ul{margin:0;padding:0;max-height:400px;overflow-y:auto}.picker .pc-select .pc-list li{display:block;list-style:none;padding:0 0 0 8px;cursor:pointer;color:#666;word-wrap:break-word}.picker .pc-select .pc-list li:nth-child(even){background-color:#f2f2f2}.picker .pc-select .pc-list li:hover{background-color:#666;color:#fff}.picker .pc-select .pc-list li.not-found{font-style:italic;text-align:center;cursor:default}.picker .pc-select .pc-list li .searched{font-weight:700}.picker .pc-select .pc-trigger{margin-bottom:5px} -------------------------------------------------------------------------------- /static/css/prettify.css: -------------------------------------------------------------------------------- 1 | .com{color:#93a1a1}.lit{color:#195f91}.pun,.opn,.clo{color:#93a1a1}.fun{color:#dc322f}.str,.atv{color:#d14}.kwd,.prettyprint .tag{color:#1e347b}.typ,.atn,.dec,.var{color:teal}.pln{color:#48484c}.prettyprint{padding:8px;background-color:#f7f7f9;border:1px solid #e1e1e8}.prettyprint.linenums{-webkit-box-shadow:inset 40px 0 0 #fbfbfc,inset 41px 0 0 #ececf0;-moz-box-shadow:inset 40px 0 0 #fbfbfc,inset 41px 0 0 #ececf0;box-shadow:inset 40px 0 0 #fbfbfc,inset 41px 0 0 #ececf0}ol.linenums{margin:0 0 0 33px}ol.linenums li{padding-left:12px;color:#bebec5;line-height:20px;text-shadow:0 1px 0 #fff} -------------------------------------------------------------------------------- /static/file/gallery-1.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Mr-BeanSir/MailDou/ab947ed1a2c6b85f97b0883f8b065a798e518cc6/static/file/gallery-1.jpg -------------------------------------------------------------------------------- /static/file/gallery-10.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Mr-BeanSir/MailDou/ab947ed1a2c6b85f97b0883f8b065a798e518cc6/static/file/gallery-10.jpg -------------------------------------------------------------------------------- /static/file/gallery-11.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Mr-BeanSir/MailDou/ab947ed1a2c6b85f97b0883f8b065a798e518cc6/static/file/gallery-11.jpg -------------------------------------------------------------------------------- /static/file/gallery-12.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Mr-BeanSir/MailDou/ab947ed1a2c6b85f97b0883f8b065a798e518cc6/static/file/gallery-12.jpg -------------------------------------------------------------------------------- /static/file/gallery-13.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Mr-BeanSir/MailDou/ab947ed1a2c6b85f97b0883f8b065a798e518cc6/static/file/gallery-13.jpg -------------------------------------------------------------------------------- /static/file/gallery-14.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Mr-BeanSir/MailDou/ab947ed1a2c6b85f97b0883f8b065a798e518cc6/static/file/gallery-14.jpg -------------------------------------------------------------------------------- /static/file/gallery-15.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Mr-BeanSir/MailDou/ab947ed1a2c6b85f97b0883f8b065a798e518cc6/static/file/gallery-15.jpg -------------------------------------------------------------------------------- /static/file/gallery-16.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Mr-BeanSir/MailDou/ab947ed1a2c6b85f97b0883f8b065a798e518cc6/static/file/gallery-16.jpg -------------------------------------------------------------------------------- /static/file/gallery-17.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Mr-BeanSir/MailDou/ab947ed1a2c6b85f97b0883f8b065a798e518cc6/static/file/gallery-17.jpg -------------------------------------------------------------------------------- /static/file/gallery-18.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Mr-BeanSir/MailDou/ab947ed1a2c6b85f97b0883f8b065a798e518cc6/static/file/gallery-18.jpg -------------------------------------------------------------------------------- /static/file/gallery-19.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Mr-BeanSir/MailDou/ab947ed1a2c6b85f97b0883f8b065a798e518cc6/static/file/gallery-19.jpg -------------------------------------------------------------------------------- /static/file/gallery-2.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Mr-BeanSir/MailDou/ab947ed1a2c6b85f97b0883f8b065a798e518cc6/static/file/gallery-2.jpg -------------------------------------------------------------------------------- /static/file/gallery-20.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Mr-BeanSir/MailDou/ab947ed1a2c6b85f97b0883f8b065a798e518cc6/static/file/gallery-20.jpg -------------------------------------------------------------------------------- /static/file/gallery-21.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Mr-BeanSir/MailDou/ab947ed1a2c6b85f97b0883f8b065a798e518cc6/static/file/gallery-21.jpg -------------------------------------------------------------------------------- /static/file/gallery-22.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Mr-BeanSir/MailDou/ab947ed1a2c6b85f97b0883f8b065a798e518cc6/static/file/gallery-22.jpg -------------------------------------------------------------------------------- /static/file/gallery-23.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Mr-BeanSir/MailDou/ab947ed1a2c6b85f97b0883f8b065a798e518cc6/static/file/gallery-23.jpg -------------------------------------------------------------------------------- /static/file/gallery-24.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Mr-BeanSir/MailDou/ab947ed1a2c6b85f97b0883f8b065a798e518cc6/static/file/gallery-24.jpg -------------------------------------------------------------------------------- /static/file/gallery-25.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Mr-BeanSir/MailDou/ab947ed1a2c6b85f97b0883f8b065a798e518cc6/static/file/gallery-25.jpg -------------------------------------------------------------------------------- /static/file/gallery-26.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Mr-BeanSir/MailDou/ab947ed1a2c6b85f97b0883f8b065a798e518cc6/static/file/gallery-26.jpg -------------------------------------------------------------------------------- /static/file/gallery-27.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Mr-BeanSir/MailDou/ab947ed1a2c6b85f97b0883f8b065a798e518cc6/static/file/gallery-27.jpg -------------------------------------------------------------------------------- /static/file/gallery-28.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Mr-BeanSir/MailDou/ab947ed1a2c6b85f97b0883f8b065a798e518cc6/static/file/gallery-28.jpg -------------------------------------------------------------------------------- /static/file/gallery-29.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Mr-BeanSir/MailDou/ab947ed1a2c6b85f97b0883f8b065a798e518cc6/static/file/gallery-29.jpg -------------------------------------------------------------------------------- /static/file/gallery-3.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Mr-BeanSir/MailDou/ab947ed1a2c6b85f97b0883f8b065a798e518cc6/static/file/gallery-3.jpg -------------------------------------------------------------------------------- /static/file/gallery-30.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Mr-BeanSir/MailDou/ab947ed1a2c6b85f97b0883f8b065a798e518cc6/static/file/gallery-30.jpg -------------------------------------------------------------------------------- /static/file/gallery-31.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Mr-BeanSir/MailDou/ab947ed1a2c6b85f97b0883f8b065a798e518cc6/static/file/gallery-31.jpg -------------------------------------------------------------------------------- /static/file/gallery-32.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Mr-BeanSir/MailDou/ab947ed1a2c6b85f97b0883f8b065a798e518cc6/static/file/gallery-32.jpg -------------------------------------------------------------------------------- /static/file/gallery-33.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Mr-BeanSir/MailDou/ab947ed1a2c6b85f97b0883f8b065a798e518cc6/static/file/gallery-33.jpg -------------------------------------------------------------------------------- /static/file/gallery-34.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Mr-BeanSir/MailDou/ab947ed1a2c6b85f97b0883f8b065a798e518cc6/static/file/gallery-34.jpg -------------------------------------------------------------------------------- /static/file/gallery-35.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Mr-BeanSir/MailDou/ab947ed1a2c6b85f97b0883f8b065a798e518cc6/static/file/gallery-35.jpg -------------------------------------------------------------------------------- /static/file/gallery-36.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Mr-BeanSir/MailDou/ab947ed1a2c6b85f97b0883f8b065a798e518cc6/static/file/gallery-36.jpg -------------------------------------------------------------------------------- /static/file/gallery-37.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Mr-BeanSir/MailDou/ab947ed1a2c6b85f97b0883f8b065a798e518cc6/static/file/gallery-37.jpg -------------------------------------------------------------------------------- /static/file/gallery-38.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Mr-BeanSir/MailDou/ab947ed1a2c6b85f97b0883f8b065a798e518cc6/static/file/gallery-38.jpg -------------------------------------------------------------------------------- /static/file/gallery-39.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Mr-BeanSir/MailDou/ab947ed1a2c6b85f97b0883f8b065a798e518cc6/static/file/gallery-39.jpg -------------------------------------------------------------------------------- /static/file/gallery-4.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Mr-BeanSir/MailDou/ab947ed1a2c6b85f97b0883f8b065a798e518cc6/static/file/gallery-4.jpg -------------------------------------------------------------------------------- /static/file/gallery-40.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Mr-BeanSir/MailDou/ab947ed1a2c6b85f97b0883f8b065a798e518cc6/static/file/gallery-40.jpg -------------------------------------------------------------------------------- /static/file/gallery-41.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Mr-BeanSir/MailDou/ab947ed1a2c6b85f97b0883f8b065a798e518cc6/static/file/gallery-41.jpg -------------------------------------------------------------------------------- /static/file/gallery-42.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Mr-BeanSir/MailDou/ab947ed1a2c6b85f97b0883f8b065a798e518cc6/static/file/gallery-42.jpg -------------------------------------------------------------------------------- /static/file/gallery-43.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Mr-BeanSir/MailDou/ab947ed1a2c6b85f97b0883f8b065a798e518cc6/static/file/gallery-43.jpg -------------------------------------------------------------------------------- /static/file/gallery-44.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Mr-BeanSir/MailDou/ab947ed1a2c6b85f97b0883f8b065a798e518cc6/static/file/gallery-44.jpg -------------------------------------------------------------------------------- /static/file/gallery-45.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Mr-BeanSir/MailDou/ab947ed1a2c6b85f97b0883f8b065a798e518cc6/static/file/gallery-45.jpg -------------------------------------------------------------------------------- /static/file/gallery-46.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Mr-BeanSir/MailDou/ab947ed1a2c6b85f97b0883f8b065a798e518cc6/static/file/gallery-46.jpg -------------------------------------------------------------------------------- /static/file/gallery-47.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Mr-BeanSir/MailDou/ab947ed1a2c6b85f97b0883f8b065a798e518cc6/static/file/gallery-47.jpg -------------------------------------------------------------------------------- /static/file/gallery-48.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Mr-BeanSir/MailDou/ab947ed1a2c6b85f97b0883f8b065a798e518cc6/static/file/gallery-48.jpg -------------------------------------------------------------------------------- /static/file/gallery-49.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Mr-BeanSir/MailDou/ab947ed1a2c6b85f97b0883f8b065a798e518cc6/static/file/gallery-49.jpg -------------------------------------------------------------------------------- /static/file/gallery-5.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Mr-BeanSir/MailDou/ab947ed1a2c6b85f97b0883f8b065a798e518cc6/static/file/gallery-5.jpg -------------------------------------------------------------------------------- /static/file/gallery-50.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Mr-BeanSir/MailDou/ab947ed1a2c6b85f97b0883f8b065a798e518cc6/static/file/gallery-50.jpg -------------------------------------------------------------------------------- /static/file/gallery-51.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Mr-BeanSir/MailDou/ab947ed1a2c6b85f97b0883f8b065a798e518cc6/static/file/gallery-51.jpg -------------------------------------------------------------------------------- /static/file/gallery-52.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Mr-BeanSir/MailDou/ab947ed1a2c6b85f97b0883f8b065a798e518cc6/static/file/gallery-52.jpg -------------------------------------------------------------------------------- /static/file/gallery-53.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Mr-BeanSir/MailDou/ab947ed1a2c6b85f97b0883f8b065a798e518cc6/static/file/gallery-53.jpg -------------------------------------------------------------------------------- /static/file/gallery-6.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Mr-BeanSir/MailDou/ab947ed1a2c6b85f97b0883f8b065a798e518cc6/static/file/gallery-6.jpg -------------------------------------------------------------------------------- /static/file/gallery-7.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Mr-BeanSir/MailDou/ab947ed1a2c6b85f97b0883f8b065a798e518cc6/static/file/gallery-7.jpg -------------------------------------------------------------------------------- /static/file/gallery-8.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Mr-BeanSir/MailDou/ab947ed1a2c6b85f97b0883f8b065a798e518cc6/static/file/gallery-8.jpg -------------------------------------------------------------------------------- /static/file/gallery-9.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Mr-BeanSir/MailDou/ab947ed1a2c6b85f97b0883f8b065a798e518cc6/static/file/gallery-9.jpg -------------------------------------------------------------------------------- /static/font/KFOmCnqEu92Fr1Mu4WxKOzY.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Mr-BeanSir/MailDou/ab947ed1a2c6b85f97b0883f8b065a798e518cc6/static/font/KFOmCnqEu92Fr1Mu4WxKOzY.woff2 -------------------------------------------------------------------------------- /static/font/KFOmCnqEu92Fr1Mu4mxK.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Mr-BeanSir/MailDou/ab947ed1a2c6b85f97b0883f8b065a798e518cc6/static/font/KFOmCnqEu92Fr1Mu4mxK.woff2 -------------------------------------------------------------------------------- /static/font/KFOmCnqEu92Fr1Mu5mxKOzY.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Mr-BeanSir/MailDou/ab947ed1a2c6b85f97b0883f8b065a798e518cc6/static/font/KFOmCnqEu92Fr1Mu5mxKOzY.woff2 -------------------------------------------------------------------------------- /static/font/KFOmCnqEu92Fr1Mu72xKOzY.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Mr-BeanSir/MailDou/ab947ed1a2c6b85f97b0883f8b065a798e518cc6/static/font/KFOmCnqEu92Fr1Mu72xKOzY.woff2 -------------------------------------------------------------------------------- /static/font/KFOmCnqEu92Fr1Mu7GxKOzY.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Mr-BeanSir/MailDou/ab947ed1a2c6b85f97b0883f8b065a798e518cc6/static/font/KFOmCnqEu92Fr1Mu7GxKOzY.woff2 -------------------------------------------------------------------------------- /static/font/KFOmCnqEu92Fr1Mu7WxKOzY.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Mr-BeanSir/MailDou/ab947ed1a2c6b85f97b0883f8b065a798e518cc6/static/font/KFOmCnqEu92Fr1Mu7WxKOzY.woff2 -------------------------------------------------------------------------------- /static/font/KFOmCnqEu92Fr1Mu7mxKOzY.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Mr-BeanSir/MailDou/ab947ed1a2c6b85f97b0883f8b065a798e518cc6/static/font/KFOmCnqEu92Fr1Mu7mxKOzY.woff2 -------------------------------------------------------------------------------- /static/font/bootstrap-icons.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Mr-BeanSir/MailDou/ab947ed1a2c6b85f97b0883f8b065a798e518cc6/static/font/bootstrap-icons.woff -------------------------------------------------------------------------------- /static/font/bootstrap-icons.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Mr-BeanSir/MailDou/ab947ed1a2c6b85f97b0883f8b065a798e518cc6/static/font/bootstrap-icons.woff2 -------------------------------------------------------------------------------- /static/font/cIflMapbsEk7TDLdtEz1BwkeNIh1R5_F.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Mr-BeanSir/MailDou/ab947ed1a2c6b85f97b0883f8b065a798e518cc6/static/font/cIflMapbsEk7TDLdtEz1BwkeNIh1R5_F.woff2 -------------------------------------------------------------------------------- /static/font/cIflMapbsEk7TDLdtEz1BwkeNIh1SJ_F7AY.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Mr-BeanSir/MailDou/ab947ed1a2c6b85f97b0883f8b065a798e518cc6/static/font/cIflMapbsEk7TDLdtEz1BwkeNIh1SJ_F7AY.woff2 -------------------------------------------------------------------------------- /static/font/cIflMapbsEk7TDLdtEz1BwkeNIh1SZ_F7AY.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Mr-BeanSir/MailDou/ab947ed1a2c6b85f97b0883f8b065a798e518cc6/static/font/cIflMapbsEk7TDLdtEz1BwkeNIh1SZ_F7AY.woff2 -------------------------------------------------------------------------------- /static/font/cIflMapbsEk7TDLdtEz1BwkeNIh1U5_F7AY.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Mr-BeanSir/MailDou/ab947ed1a2c6b85f97b0883f8b065a798e518cc6/static/font/cIflMapbsEk7TDLdtEz1BwkeNIh1U5_F7AY.woff2 -------------------------------------------------------------------------------- /static/font/cIflMapbsEk7TDLdtEz1BwkebIl1R5_F.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Mr-BeanSir/MailDou/ab947ed1a2c6b85f97b0883f8b065a798e518cc6/static/font/cIflMapbsEk7TDLdtEz1BwkebIl1R5_F.woff2 -------------------------------------------------------------------------------- /static/font/cIflMapbsEk7TDLdtEz1BwkebIl1SJ_F7AY.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Mr-BeanSir/MailDou/ab947ed1a2c6b85f97b0883f8b065a798e518cc6/static/font/cIflMapbsEk7TDLdtEz1BwkebIl1SJ_F7AY.woff2 -------------------------------------------------------------------------------- /static/font/cIflMapbsEk7TDLdtEz1BwkebIl1SZ_F7AY.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Mr-BeanSir/MailDou/ab947ed1a2c6b85f97b0883f8b065a798e518cc6/static/font/cIflMapbsEk7TDLdtEz1BwkebIl1SZ_F7AY.woff2 -------------------------------------------------------------------------------- /static/font/cIflMapbsEk7TDLdtEz1BwkebIl1U5_F7AY.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Mr-BeanSir/MailDou/ab947ed1a2c6b85f97b0883f8b065a798e518cc6/static/font/cIflMapbsEk7TDLdtEz1BwkebIl1U5_F7AY.woff2 -------------------------------------------------------------------------------- /static/font/fa-brands-400.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Mr-BeanSir/MailDou/ab947ed1a2c6b85f97b0883f8b065a798e518cc6/static/font/fa-brands-400.ttf -------------------------------------------------------------------------------- /static/font/fa-brands-400.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Mr-BeanSir/MailDou/ab947ed1a2c6b85f97b0883f8b065a798e518cc6/static/font/fa-brands-400.woff2 -------------------------------------------------------------------------------- /static/font/fa-regular-400.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Mr-BeanSir/MailDou/ab947ed1a2c6b85f97b0883f8b065a798e518cc6/static/font/fa-regular-400.ttf -------------------------------------------------------------------------------- /static/font/fa-regular-400.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Mr-BeanSir/MailDou/ab947ed1a2c6b85f97b0883f8b065a798e518cc6/static/font/fa-regular-400.woff2 -------------------------------------------------------------------------------- /static/font/fa-solid-900.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Mr-BeanSir/MailDou/ab947ed1a2c6b85f97b0883f8b065a798e518cc6/static/font/fa-solid-900.ttf -------------------------------------------------------------------------------- /static/font/fa-solid-900.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Mr-BeanSir/MailDou/ab947ed1a2c6b85f97b0883f8b065a798e518cc6/static/font/fa-solid-900.woff2 -------------------------------------------------------------------------------- /static/font/fa-v4compatibility.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Mr-BeanSir/MailDou/ab947ed1a2c6b85f97b0883f8b065a798e518cc6/static/font/fa-v4compatibility.ttf -------------------------------------------------------------------------------- /static/font/fa-v4compatibility.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Mr-BeanSir/MailDou/ab947ed1a2c6b85f97b0883f8b065a798e518cc6/static/font/fa-v4compatibility.woff2 -------------------------------------------------------------------------------- /static/font/summernote.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Mr-BeanSir/MailDou/ab947ed1a2c6b85f97b0883f8b065a798e518cc6/static/font/summernote.eot -------------------------------------------------------------------------------- /static/font/summernote.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Mr-BeanSir/MailDou/ab947ed1a2c6b85f97b0883f8b065a798e518cc6/static/font/summernote.ttf -------------------------------------------------------------------------------- /static/font/summernote.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Mr-BeanSir/MailDou/ab947ed1a2c6b85f97b0883f8b065a798e518cc6/static/font/summernote.woff -------------------------------------------------------------------------------- /static/font/summernote.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Mr-BeanSir/MailDou/ab947ed1a2c6b85f97b0883f8b065a798e518cc6/static/font/summernote.woff2 -------------------------------------------------------------------------------- /static/image/browser-bar.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Mr-BeanSir/MailDou/ab947ed1a2c6b85f97b0883f8b065a798e518cc6/static/image/browser-bar.png -------------------------------------------------------------------------------- /static/image/cf-icon-browser.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Mr-BeanSir/MailDou/ab947ed1a2c6b85f97b0883f8b065a798e518cc6/static/image/cf-icon-browser.png -------------------------------------------------------------------------------- /static/image/cf-icon-cloud.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Mr-BeanSir/MailDou/ab947ed1a2c6b85f97b0883f8b065a798e518cc6/static/image/cf-icon-cloud.png -------------------------------------------------------------------------------- /static/image/cf-icon-error.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Mr-BeanSir/MailDou/ab947ed1a2c6b85f97b0883f8b065a798e518cc6/static/image/cf-icon-error.png -------------------------------------------------------------------------------- /static/image/cf-icon-horizontal-arrow.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Mr-BeanSir/MailDou/ab947ed1a2c6b85f97b0883f8b065a798e518cc6/static/image/cf-icon-horizontal-arrow.png -------------------------------------------------------------------------------- /static/image/cf-icon-ok.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Mr-BeanSir/MailDou/ab947ed1a2c6b85f97b0883f8b065a798e518cc6/static/image/cf-icon-ok.png -------------------------------------------------------------------------------- /static/image/cf-icon-server.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Mr-BeanSir/MailDou/ab947ed1a2c6b85f97b0883f8b065a798e518cc6/static/image/cf-icon-server.png -------------------------------------------------------------------------------- /static/image/cf-no-screenshot-error.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Mr-BeanSir/MailDou/ab947ed1a2c6b85f97b0883f8b065a798e518cc6/static/image/cf-no-screenshot-error.png -------------------------------------------------------------------------------- /static/image/cf-no-screenshot-warn.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Mr-BeanSir/MailDou/ab947ed1a2c6b85f97b0883f8b065a798e518cc6/static/image/cf-no-screenshot-warn.png -------------------------------------------------------------------------------- /static/image/cover-2.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Mr-BeanSir/MailDou/ab947ed1a2c6b85f97b0883f8b065a798e518cc6/static/image/cover-2.jpg -------------------------------------------------------------------------------- /static/image/cover-3.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Mr-BeanSir/MailDou/ab947ed1a2c6b85f97b0883f8b065a798e518cc6/static/image/cover-3.jpg -------------------------------------------------------------------------------- /static/image/cover-4.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Mr-BeanSir/MailDou/ab947ed1a2c6b85f97b0883f8b065a798e518cc6/static/image/cover-4.jpg -------------------------------------------------------------------------------- /static/image/cover-5.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Mr-BeanSir/MailDou/ab947ed1a2c6b85f97b0883f8b065a798e518cc6/static/image/cover-5.jpg -------------------------------------------------------------------------------- /static/image/cover-thumb-1.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Mr-BeanSir/MailDou/ab947ed1a2c6b85f97b0883f8b065a798e518cc6/static/image/cover-thumb-1.jpg -------------------------------------------------------------------------------- /static/image/cover-thumb-2.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Mr-BeanSir/MailDou/ab947ed1a2c6b85f97b0883f8b065a798e518cc6/static/image/cover-thumb-2.jpg -------------------------------------------------------------------------------- /static/image/cover-thumb-3.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Mr-BeanSir/MailDou/ab947ed1a2c6b85f97b0883f8b065a798e518cc6/static/image/cover-thumb-3.jpg -------------------------------------------------------------------------------- /static/image/cover-thumb-4.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Mr-BeanSir/MailDou/ab947ed1a2c6b85f97b0883f8b065a798e518cc6/static/image/cover-thumb-4.jpg -------------------------------------------------------------------------------- /static/image/cover-thumb-5.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Mr-BeanSir/MailDou/ab947ed1a2c6b85f97b0883f8b065a798e518cc6/static/image/cover-thumb-5.jpg -------------------------------------------------------------------------------- /static/image/cover.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Mr-BeanSir/MailDou/ab947ed1a2c6b85f97b0883f8b065a798e518cc6/static/image/cover.jpg -------------------------------------------------------------------------------- /static/image/cover1.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Mr-BeanSir/MailDou/ab947ed1a2c6b85f97b0883f8b065a798e518cc6/static/image/cover1.jpg -------------------------------------------------------------------------------- /static/image/default-skin.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Mr-BeanSir/MailDou/ab947ed1a2c6b85f97b0883f8b065a798e518cc6/static/image/default-skin.png -------------------------------------------------------------------------------- /static/image/default-skin.svg: -------------------------------------------------------------------------------- 1 | default-skin 2 -------------------------------------------------------------------------------- /static/image/gallery-1.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Mr-BeanSir/MailDou/ab947ed1a2c6b85f97b0883f8b065a798e518cc6/static/image/gallery-1.jpg -------------------------------------------------------------------------------- /static/image/gallery-10.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Mr-BeanSir/MailDou/ab947ed1a2c6b85f97b0883f8b065a798e518cc6/static/image/gallery-10.jpg -------------------------------------------------------------------------------- /static/image/gallery-11.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Mr-BeanSir/MailDou/ab947ed1a2c6b85f97b0883f8b065a798e518cc6/static/image/gallery-11.jpg -------------------------------------------------------------------------------- /static/image/gallery-12.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Mr-BeanSir/MailDou/ab947ed1a2c6b85f97b0883f8b065a798e518cc6/static/image/gallery-12.jpg -------------------------------------------------------------------------------- /static/image/gallery-13.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Mr-BeanSir/MailDou/ab947ed1a2c6b85f97b0883f8b065a798e518cc6/static/image/gallery-13.jpg -------------------------------------------------------------------------------- /static/image/gallery-14.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Mr-BeanSir/MailDou/ab947ed1a2c6b85f97b0883f8b065a798e518cc6/static/image/gallery-14.jpg -------------------------------------------------------------------------------- /static/image/gallery-15.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Mr-BeanSir/MailDou/ab947ed1a2c6b85f97b0883f8b065a798e518cc6/static/image/gallery-15.jpg -------------------------------------------------------------------------------- /static/image/gallery-16.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Mr-BeanSir/MailDou/ab947ed1a2c6b85f97b0883f8b065a798e518cc6/static/image/gallery-16.jpg -------------------------------------------------------------------------------- /static/image/gallery-17.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Mr-BeanSir/MailDou/ab947ed1a2c6b85f97b0883f8b065a798e518cc6/static/image/gallery-17.jpg -------------------------------------------------------------------------------- /static/image/gallery-18.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Mr-BeanSir/MailDou/ab947ed1a2c6b85f97b0883f8b065a798e518cc6/static/image/gallery-18.jpg -------------------------------------------------------------------------------- /static/image/gallery-19.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Mr-BeanSir/MailDou/ab947ed1a2c6b85f97b0883f8b065a798e518cc6/static/image/gallery-19.jpg -------------------------------------------------------------------------------- /static/image/gallery-2.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Mr-BeanSir/MailDou/ab947ed1a2c6b85f97b0883f8b065a798e518cc6/static/image/gallery-2.jpg -------------------------------------------------------------------------------- /static/image/gallery-20.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Mr-BeanSir/MailDou/ab947ed1a2c6b85f97b0883f8b065a798e518cc6/static/image/gallery-20.jpg -------------------------------------------------------------------------------- /static/image/gallery-21.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Mr-BeanSir/MailDou/ab947ed1a2c6b85f97b0883f8b065a798e518cc6/static/image/gallery-21.jpg -------------------------------------------------------------------------------- /static/image/gallery-22.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Mr-BeanSir/MailDou/ab947ed1a2c6b85f97b0883f8b065a798e518cc6/static/image/gallery-22.jpg -------------------------------------------------------------------------------- /static/image/gallery-23.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Mr-BeanSir/MailDou/ab947ed1a2c6b85f97b0883f8b065a798e518cc6/static/image/gallery-23.jpg -------------------------------------------------------------------------------- /static/image/gallery-24.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Mr-BeanSir/MailDou/ab947ed1a2c6b85f97b0883f8b065a798e518cc6/static/image/gallery-24.jpg -------------------------------------------------------------------------------- /static/image/gallery-25.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Mr-BeanSir/MailDou/ab947ed1a2c6b85f97b0883f8b065a798e518cc6/static/image/gallery-25.jpg -------------------------------------------------------------------------------- /static/image/gallery-26.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Mr-BeanSir/MailDou/ab947ed1a2c6b85f97b0883f8b065a798e518cc6/static/image/gallery-26.jpg -------------------------------------------------------------------------------- /static/image/gallery-27.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Mr-BeanSir/MailDou/ab947ed1a2c6b85f97b0883f8b065a798e518cc6/static/image/gallery-27.jpg -------------------------------------------------------------------------------- /static/image/gallery-28.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Mr-BeanSir/MailDou/ab947ed1a2c6b85f97b0883f8b065a798e518cc6/static/image/gallery-28.jpg -------------------------------------------------------------------------------- /static/image/gallery-29.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Mr-BeanSir/MailDou/ab947ed1a2c6b85f97b0883f8b065a798e518cc6/static/image/gallery-29.jpg -------------------------------------------------------------------------------- /static/image/gallery-3.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Mr-BeanSir/MailDou/ab947ed1a2c6b85f97b0883f8b065a798e518cc6/static/image/gallery-3.jpg -------------------------------------------------------------------------------- /static/image/gallery-30.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Mr-BeanSir/MailDou/ab947ed1a2c6b85f97b0883f8b065a798e518cc6/static/image/gallery-30.jpg -------------------------------------------------------------------------------- /static/image/gallery-31.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Mr-BeanSir/MailDou/ab947ed1a2c6b85f97b0883f8b065a798e518cc6/static/image/gallery-31.jpg -------------------------------------------------------------------------------- /static/image/gallery-32.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Mr-BeanSir/MailDou/ab947ed1a2c6b85f97b0883f8b065a798e518cc6/static/image/gallery-32.jpg -------------------------------------------------------------------------------- /static/image/gallery-33.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Mr-BeanSir/MailDou/ab947ed1a2c6b85f97b0883f8b065a798e518cc6/static/image/gallery-33.jpg -------------------------------------------------------------------------------- /static/image/gallery-34.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Mr-BeanSir/MailDou/ab947ed1a2c6b85f97b0883f8b065a798e518cc6/static/image/gallery-34.jpg -------------------------------------------------------------------------------- /static/image/gallery-35.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Mr-BeanSir/MailDou/ab947ed1a2c6b85f97b0883f8b065a798e518cc6/static/image/gallery-35.jpg -------------------------------------------------------------------------------- /static/image/gallery-4.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Mr-BeanSir/MailDou/ab947ed1a2c6b85f97b0883f8b065a798e518cc6/static/image/gallery-4.jpg -------------------------------------------------------------------------------- /static/image/gallery-5.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Mr-BeanSir/MailDou/ab947ed1a2c6b85f97b0883f8b065a798e518cc6/static/image/gallery-5.jpg -------------------------------------------------------------------------------- /static/image/gallery-6.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Mr-BeanSir/MailDou/ab947ed1a2c6b85f97b0883f8b065a798e518cc6/static/image/gallery-6.jpg -------------------------------------------------------------------------------- /static/image/gallery-7.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Mr-BeanSir/MailDou/ab947ed1a2c6b85f97b0883f8b065a798e518cc6/static/image/gallery-7.jpg -------------------------------------------------------------------------------- /static/image/gallery-8.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Mr-BeanSir/MailDou/ab947ed1a2c6b85f97b0883f8b065a798e518cc6/static/image/gallery-8.jpg -------------------------------------------------------------------------------- /static/image/gallery-9.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Mr-BeanSir/MailDou/ab947ed1a2c6b85f97b0883f8b065a798e518cc6/static/image/gallery-9.jpg -------------------------------------------------------------------------------- /static/image/glyphicons-halflings-white.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Mr-BeanSir/MailDou/ab947ed1a2c6b85f97b0883f8b065a798e518cc6/static/image/glyphicons-halflings-white.png -------------------------------------------------------------------------------- /static/image/glyphicons-halflings.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Mr-BeanSir/MailDou/ab947ed1a2c6b85f97b0883f8b065a798e518cc6/static/image/glyphicons-halflings.png -------------------------------------------------------------------------------- /static/image/icon-exclamation.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Mr-BeanSir/MailDou/ab947ed1a2c6b85f97b0883f8b065a798e518cc6/static/image/icon-exclamation.png -------------------------------------------------------------------------------- /static/image/logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Mr-BeanSir/MailDou/ab947ed1a2c6b85f97b0883f8b065a798e518cc6/static/image/logo.png -------------------------------------------------------------------------------- /static/image/news-1.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Mr-BeanSir/MailDou/ab947ed1a2c6b85f97b0883f8b065a798e518cc6/static/image/news-1.jpg -------------------------------------------------------------------------------- /static/image/news-2.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Mr-BeanSir/MailDou/ab947ed1a2c6b85f97b0883f8b065a798e518cc6/static/image/news-2.jpg -------------------------------------------------------------------------------- /static/image/pattern.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Mr-BeanSir/MailDou/ab947ed1a2c6b85f97b0883f8b065a798e518cc6/static/image/pattern.png -------------------------------------------------------------------------------- /static/image/preloader.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Mr-BeanSir/MailDou/ab947ed1a2c6b85f97b0883f8b065a798e518cc6/static/image/preloader.gif -------------------------------------------------------------------------------- /static/image/product-1.jpeg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Mr-BeanSir/MailDou/ab947ed1a2c6b85f97b0883f8b065a798e518cc6/static/image/product-1.jpeg -------------------------------------------------------------------------------- /static/image/product-1.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Mr-BeanSir/MailDou/ab947ed1a2c6b85f97b0883f8b065a798e518cc6/static/image/product-1.jpg -------------------------------------------------------------------------------- /static/image/product-10.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Mr-BeanSir/MailDou/ab947ed1a2c6b85f97b0883f8b065a798e518cc6/static/image/product-10.jpg -------------------------------------------------------------------------------- /static/image/product-11.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Mr-BeanSir/MailDou/ab947ed1a2c6b85f97b0883f8b065a798e518cc6/static/image/product-11.jpg -------------------------------------------------------------------------------- /static/image/product-12.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Mr-BeanSir/MailDou/ab947ed1a2c6b85f97b0883f8b065a798e518cc6/static/image/product-12.jpg -------------------------------------------------------------------------------- /static/image/product-13.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Mr-BeanSir/MailDou/ab947ed1a2c6b85f97b0883f8b065a798e518cc6/static/image/product-13.jpg -------------------------------------------------------------------------------- /static/image/product-14.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Mr-BeanSir/MailDou/ab947ed1a2c6b85f97b0883f8b065a798e518cc6/static/image/product-14.jpg -------------------------------------------------------------------------------- /static/image/product-15.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Mr-BeanSir/MailDou/ab947ed1a2c6b85f97b0883f8b065a798e518cc6/static/image/product-15.jpg -------------------------------------------------------------------------------- /static/image/product-16.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Mr-BeanSir/MailDou/ab947ed1a2c6b85f97b0883f8b065a798e518cc6/static/image/product-16.jpg -------------------------------------------------------------------------------- /static/image/product-17.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Mr-BeanSir/MailDou/ab947ed1a2c6b85f97b0883f8b065a798e518cc6/static/image/product-17.jpg -------------------------------------------------------------------------------- /static/image/product-2.jpeg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Mr-BeanSir/MailDou/ab947ed1a2c6b85f97b0883f8b065a798e518cc6/static/image/product-2.jpeg -------------------------------------------------------------------------------- /static/image/product-2.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Mr-BeanSir/MailDou/ab947ed1a2c6b85f97b0883f8b065a798e518cc6/static/image/product-2.jpg -------------------------------------------------------------------------------- /static/image/product-3.jpeg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Mr-BeanSir/MailDou/ab947ed1a2c6b85f97b0883f8b065a798e518cc6/static/image/product-3.jpeg -------------------------------------------------------------------------------- /static/image/product-3.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Mr-BeanSir/MailDou/ab947ed1a2c6b85f97b0883f8b065a798e518cc6/static/image/product-3.jpg -------------------------------------------------------------------------------- /static/image/product-4.jpeg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Mr-BeanSir/MailDou/ab947ed1a2c6b85f97b0883f8b065a798e518cc6/static/image/product-4.jpeg -------------------------------------------------------------------------------- /static/image/product-4.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Mr-BeanSir/MailDou/ab947ed1a2c6b85f97b0883f8b065a798e518cc6/static/image/product-4.jpg -------------------------------------------------------------------------------- /static/image/product-5.jpeg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Mr-BeanSir/MailDou/ab947ed1a2c6b85f97b0883f8b065a798e518cc6/static/image/product-5.jpeg -------------------------------------------------------------------------------- /static/image/product-5.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Mr-BeanSir/MailDou/ab947ed1a2c6b85f97b0883f8b065a798e518cc6/static/image/product-5.jpg -------------------------------------------------------------------------------- /static/image/product-6.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Mr-BeanSir/MailDou/ab947ed1a2c6b85f97b0883f8b065a798e518cc6/static/image/product-6.jpg -------------------------------------------------------------------------------- /static/image/product-7.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Mr-BeanSir/MailDou/ab947ed1a2c6b85f97b0883f8b065a798e518cc6/static/image/product-7.jpg -------------------------------------------------------------------------------- /static/image/product-8.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Mr-BeanSir/MailDou/ab947ed1a2c6b85f97b0883f8b065a798e518cc6/static/image/product-8.jpg -------------------------------------------------------------------------------- /static/image/product-9.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Mr-BeanSir/MailDou/ab947ed1a2c6b85f97b0883f8b065a798e518cc6/static/image/product-9.jpg -------------------------------------------------------------------------------- /static/js/application.js: -------------------------------------------------------------------------------- 1 | !function($){$(function(){var $window=$(window) 2 | $('section [href^=#]').click(function(e){e.preventDefault()}) 3 | setTimeout(function(){$('.bs-docs-sidenav').affix({offset:{top:function(){return $window.width()<=980?290:400},bottom:270}})},100) 4 | window.prettyPrint&&prettyPrint() 5 | $('.add-on :checkbox').on('click',function(){var $this=$(this),method=$this.attr('checked')?'addClass':'removeClass' 6 | $(this).parents('.add-on')[method]('active')}) 7 | if($('#gridSystem').length){$('#gridSystem').tooltip({selector:'.show-grid > [class*="span"]',title:function(){return $(this).width()+'px'}})} 8 | $('.tooltip-demo').tooltip({selector:"a[data-toggle=tooltip]"}) 9 | $('.tooltip-test').tooltip() 10 | $('.popover-test').popover() 11 | $("a[data-toggle=popover]").popover().click(function(e){e.preventDefault()}) 12 | $('#fat-btn').click(function(){var btn=$(this) 13 | btn.button('loading') 14 | setTimeout(function(){btn.button('reset')},3000)}) 15 | $('#myCarousel').carousel() 16 | var inputsComponent=$("#components.download input"),inputsPlugin=$("#plugins.download input"),inputsVariables=$("#variables.download input") 17 | $('#components.download .toggle-all').on('click',function(e){e.preventDefault() 18 | inputsComponent.attr('checked',!inputsComponent.is(':checked'))}) 19 | $('#plugins.download .toggle-all').on('click',function(e){e.preventDefault() 20 | inputsPlugin.attr('checked',!inputsPlugin.is(':checked'))}) 21 | $('#variables.download .toggle-all').on('click',function(e){e.preventDefault() 22 | inputsVariables.val('')}) 23 | $('.download-btn .btn').on('click',function(){var css=$("#components.download input:checked").map(function(){return this.value}).toArray(),js=$("#plugins.download input:checked").map(function(){return this.value}).toArray(),vars={},img=['glyphicons-halflings.png','glyphicons-halflings-white.png'] 24 | $("#variables.download input").each(function(){$(this).val()&&(vars[$(this).prev().text()]=$(this).val())}) 25 | $.ajax({type:'POST',url:/\?dev/.test(window.location)?'http://localhost:3000':'http://bootstrap.herokuapp.com',dataType:'jsonpi',params:{js:js,css:css,vars:vars,img:img}})})}) 26 | $.ajaxTransport('jsonpi',function(opts,originalOptions,jqXHR){var url=opts.url;return{send:function(_,completeCallback){var name='jQuery_iframe_'+jQuery.now(),iframe,form 27 | iframe=$('').attr('name',name).appendTo('head') 28 | form=$('').attr('method',opts.type).attr('action',url).attr('target',name) 29 | $.each(opts.params,function(k,v){$('').attr('type','hidden').attr('name',k).attr('value',typeof v=='string'?v:JSON.stringify(v)).appendTo(form)}) 30 | form.appendTo('body').submit()}}})}(window.jQuery) -------------------------------------------------------------------------------- /static/js/bootstrap-affix.js: -------------------------------------------------------------------------------- 1 | !function($){"use strict";var Affix=function(element,options){this.options=$.extend({},$.fn.affix.defaults,options) 2 | this.$window=$(window).on('scroll.affix.data-api',$.proxy(this.checkPosition,this)).on('click.affix.data-api',$.proxy(function(){setTimeout($.proxy(this.checkPosition,this),1)},this)) 3 | this.$element=$(element) 4 | this.checkPosition()} 5 | Affix.prototype.checkPosition=function(){if(!this.$element.is(':visible'))return 6 | var scrollHeight=$(document).height(),scrollTop=this.$window.scrollTop(),position=this.$element.offset(),offset=this.options.offset,offsetBottom=offset.bottom,offsetTop=offset.top,reset='affix affix-top affix-bottom',affix 7 | if(typeof offset!='object')offsetBottom=offsetTop=offset 8 | if(typeof offsetTop=='function')offsetTop=offset.top() 9 | if(typeof offsetBottom=='function')offsetBottom=offset.bottom() 10 | affix=this.unpin!=null&&(scrollTop+this.unpin<=position.top)?false:offsetBottom!=null&&(position.top+this.$element.height()>=scrollHeight-offsetBottom)?'bottom':offsetTop!=null&&scrollTop<=offsetTop?'top':false 11 | if(this.affixed===affix)return 12 | this.affixed=affix 13 | this.unpin=affix=='bottom'?position.top-scrollTop:null 14 | this.$element.removeClass(reset).addClass('affix'+(affix?'-'+affix:''))} 15 | var old=$.fn.affix 16 | $.fn.affix=function(option){return this.each(function(){var $this=$(this),data=$this.data('affix'),options=typeof option=='object'&&option 17 | if(!data)$this.data('affix',(data=new Affix(this,options))) 18 | if(typeof option=='string')data[option]()})} 19 | $.fn.affix.Constructor=Affix 20 | $.fn.affix.defaults={offset:0} 21 | $.fn.affix.noConflict=function(){$.fn.affix=old 22 | return this} 23 | $(window).on('load',function(){$('[data-spy="affix"]').each(function(){var $spy=$(this),data=$spy.data() 24 | data.offset=data.offset||{} 25 | data.offsetBottom&&(data.offset.bottom=data.offsetBottom) 26 | data.offsetTop&&(data.offset.top=data.offsetTop) 27 | $spy.affix(data)})})}(window.jQuery); -------------------------------------------------------------------------------- /static/js/bootstrap-alert.js: -------------------------------------------------------------------------------- 1 | !function($){"use strict";var dismiss='[data-dismiss="alert"]',Alert=function(el){$(el).on('click',dismiss,this.close)} 2 | Alert.prototype.close=function(e){var $this=$(this),selector=$this.attr('data-target'),$parent 3 | if(!selector){selector=$this.attr('href') 4 | selector=selector&&selector.replace(/.*(?=#[^\s]*$)/,'')} 5 | $parent=$(selector) 6 | e&&e.preventDefault() 7 | $parent.length||($parent=$this.hasClass('alert')?$this:$this.parent()) 8 | $parent.trigger(e=$.Event('close')) 9 | if(e.isDefaultPrevented())return 10 | $parent.removeClass('in') 11 | function removeElement(){$parent.trigger('closed').remove()} 12 | $.support.transition&&$parent.hasClass('fade')?$parent.on($.support.transition.end,removeElement):removeElement()} 13 | var old=$.fn.alert 14 | $.fn.alert=function(option){return this.each(function(){var $this=$(this),data=$this.data('alert') 15 | if(!data)$this.data('alert',(data=new Alert(this))) 16 | if(typeof option=='string')data[option].call($this)})} 17 | $.fn.alert.Constructor=Alert 18 | $.fn.alert.noConflict=function(){$.fn.alert=old 19 | return this} 20 | $(document).on('click.alert.data-api',dismiss,Alert.prototype.close)}(window.jQuery); -------------------------------------------------------------------------------- /static/js/bootstrap-button.js: -------------------------------------------------------------------------------- 1 | !function($){"use strict";var Button=function(element,options){this.$element=$(element) 2 | this.options=$.extend({},$.fn.button.defaults,options)} 3 | Button.prototype.setState=function(state){var d='disabled',$el=this.$element,data=$el.data(),val=$el.is('input')?'val':'html' 4 | state=state+'Text' 5 | data.resetText||$el.data('resetText',$el[val]()) 6 | $el[val](data[state]||this.options[state]) 7 | setTimeout(function(){state=='loadingText'?$el.addClass(d).attr(d,d):$el.removeClass(d).removeAttr(d)},0)} 8 | Button.prototype.toggle=function(){var $parent=this.$element.closest('[data-toggle="buttons-radio"]') 9 | $parent&&$parent.find('.active').removeClass('active') 10 | this.$element.toggleClass('active')} 11 | var old=$.fn.button 12 | $.fn.button=function(option){return this.each(function(){var $this=$(this),data=$this.data('button'),options=typeof option=='object'&&option 13 | if(!data)$this.data('button',(data=new Button(this,options))) 14 | if(option=='toggle')data.toggle() 15 | else if(option)data.setState(option)})} 16 | $.fn.button.defaults={loadingText:'loading...'} 17 | $.fn.button.Constructor=Button 18 | $.fn.button.noConflict=function(){$.fn.button=old 19 | return this} 20 | $(document).on('click.button.data-api','[data-toggle^=button]',function(e){var $btn=$(e.target) 21 | if(!$btn.hasClass('btn'))$btn=$btn.closest('.btn') 22 | $btn.button('toggle')})}(window.jQuery); -------------------------------------------------------------------------------- /static/js/bootstrap-collapse.js: -------------------------------------------------------------------------------- 1 | !function($){"use strict";var Collapse=function(element,options){this.$element=$(element) 2 | this.options=$.extend({},$.fn.collapse.defaults,options) 3 | if(this.options.parent){this.$parent=$(this.options.parent)} 4 | this.options.toggle&&this.toggle()} 5 | Collapse.prototype={constructor:Collapse,dimension:function(){var hasWidth=this.$element.hasClass('width') 6 | return hasWidth?'width':'height'},show:function(){var dimension,scroll,actives,hasData 7 | if(this.transitioning||this.$element.hasClass('in'))return 8 | dimension=this.dimension() 9 | scroll=$.camelCase(['scroll',dimension].join('-')) 10 | actives=this.$parent&&this.$parent.find('> .accordion-group > .in') 11 | if(actives&&actives.length){hasData=actives.data('collapse') 12 | if(hasData&&hasData.transitioning)return 13 | actives.collapse('hide') 14 | hasData||actives.data('collapse',null)} 15 | this.$element[dimension](0) 16 | this.transition('addClass',$.Event('show'),'shown') 17 | $.support.transition&&this.$element[dimension](this.$element[0][scroll])},hide:function(){var dimension 18 | if(this.transitioning||!this.$element.hasClass('in'))return 19 | dimension=this.dimension() 20 | this.reset(this.$element[dimension]()) 21 | this.transition('removeClass',$.Event('hide'),'hidden') 22 | this.$element[dimension](0)},reset:function(size){var dimension=this.dimension() 23 | this.$element.removeClass('collapse') 24 | [dimension](size||'auto') 25 | [0].offsetWidth 26 | this.$element[size!==null?'addClass':'removeClass']('collapse') 27 | return this},transition:function(method,startEvent,completeEvent){var that=this,complete=function(){if(startEvent.type=='show')that.reset() 28 | that.transitioning=0 29 | that.$element.trigger(completeEvent)} 30 | this.$element.trigger(startEvent) 31 | if(startEvent.isDefaultPrevented())return 32 | this.transitioning=1 33 | this.$element[method]('in') 34 | $.support.transition&&this.$element.hasClass('collapse')?this.$element.one($.support.transition.end,complete):complete()},toggle:function(){this[this.$element.hasClass('in')?'hide':'show']()}} 35 | var old=$.fn.collapse 36 | $.fn.collapse=function(option){return this.each(function(){var $this=$(this),data=$this.data('collapse'),options=$.extend({},$.fn.collapse.defaults,$this.data(),typeof option=='object'&&option) 37 | if(!data)$this.data('collapse',(data=new Collapse(this,options))) 38 | if(typeof option=='string')data[option]()})} 39 | $.fn.collapse.defaults={toggle:true} 40 | $.fn.collapse.Constructor=Collapse 41 | $.fn.collapse.noConflict=function(){$.fn.collapse=old 42 | return this} 43 | $(document).on('click.collapse.data-api','[data-toggle=collapse]',function(e){var $this=$(this),href,target=$this.attr('data-target')||e.preventDefault()||(href=$this.attr('href'))&&href.replace(/.*(?=#[^\s]+$)/,''),option=$(target).data('collapse')?'toggle':$this.data() 44 | $this[$(target).hasClass('in')?'addClass':'removeClass']('collapsed') 45 | $(target).collapse(option)})}(window.jQuery); -------------------------------------------------------------------------------- /static/js/bootstrap-dropdown.js: -------------------------------------------------------------------------------- 1 | !function($){"use strict";var toggle='[data-toggle=dropdown]',Dropdown=function(element){var $el=$(element).on('click.dropdown.data-api',this.toggle) 2 | $('html').on('click.dropdown.data-api',function(){$el.parent().removeClass('open')})} 3 | Dropdown.prototype={constructor:Dropdown,toggle:function(e){var $this=$(this),$parent,isActive 4 | if($this.is('.disabled, :disabled'))return 5 | $parent=getParent($this) 6 | isActive=$parent.hasClass('open') 7 | clearMenus() 8 | if(!isActive){if('ontouchstart'in document.documentElement){$('').insertBefore($(this)).on('click',clearMenus)} 9 | $parent.toggleClass('open')} 10 | $this.focus() 11 | return false},keydown:function(e){var $this,$items,$active,$parent,isActive,index 12 | if(!/(38|40|27)/.test(e.keyCode))return 13 | $this=$(this) 14 | e.preventDefault() 15 | e.stopPropagation() 16 | if($this.is('.disabled, :disabled'))return 17 | $parent=getParent($this) 18 | isActive=$parent.hasClass('open') 19 | if(!isActive||(isActive&&e.keyCode==27)){if(e.which==27)$parent.find(toggle).focus() 20 | return $this.click()} 21 | $items=$('[role=menu] li:not(.divider):visible a',$parent) 22 | if(!$items.length)return 23 | index=$items.index($items.filter(':focus')) 24 | if(e.keyCode==38&&index>0)index-- 25 | if(e.keyCode==40&&index<$items.length-1)index++ 26 | if(!~index)index=0 27 | $items.eq(index).focus()}} 28 | function clearMenus(){$('.dropdown-backdrop').remove() 29 | $(toggle).each(function(){getParent($(this)).removeClass('open')})} 30 | function getParent($this){var selector=$this.attr('data-target'),$parent 31 | if(!selector){selector=$this.attr('href') 32 | selector=selector&&/#/.test(selector)&&selector.replace(/.*(?=#[^\s]*$)/,'')} 33 | $parent=selector&&$(selector) 34 | if(!$parent||!$parent.length)$parent=$this.parent() 35 | return $parent} 36 | var old=$.fn.dropdown 37 | $.fn.dropdown=function(option){return this.each(function(){var $this=$(this),data=$this.data('dropdown') 38 | if(!data)$this.data('dropdown',(data=new Dropdown(this))) 39 | if(typeof option=='string')data[option].call($this)})} 40 | $.fn.dropdown.Constructor=Dropdown 41 | $.fn.dropdown.noConflict=function(){$.fn.dropdown=old 42 | return this} 43 | $(document).on('click.dropdown.data-api',clearMenus).on('click.dropdown.data-api','.dropdown form',function(e){e.stopPropagation()}).on('click.dropdown.data-api',toggle,Dropdown.prototype.toggle).on('keydown.dropdown.data-api',toggle+', [role=menu]',Dropdown.prototype.keydown)}(window.jQuery); -------------------------------------------------------------------------------- /static/js/bootstrap-popover.js: -------------------------------------------------------------------------------- 1 | !function($){"use strict";var Popover=function(element,options){this.init('popover',element,options)} 2 | Popover.prototype=$.extend({},$.fn.tooltip.Constructor.prototype,{constructor:Popover,setContent:function(){var $tip=this.tip(),title=this.getTitle(),content=this.getContent() 3 | $tip.find('.popover-title')[this.options.html?'html':'text'](title) 4 | $tip.find('.popover-content')[this.options.html?'html':'text'](content) 5 | $tip.removeClass('fade top bottom left right in')},hasContent:function(){return this.getTitle()||this.getContent()},getContent:function(){var content,$e=this.$element,o=this.options 6 | content=(typeof o.content=='function'?o.content.call($e[0]):o.content)||$e.attr('data-content') 7 | return content},tip:function(){if(!this.$tip){this.$tip=$(this.options.template)} 8 | return this.$tip},destroy:function(){this.hide().$element.off('.'+this.type).removeData(this.type)}}) 9 | var old=$.fn.popover 10 | $.fn.popover=function(option){return this.each(function(){var $this=$(this),data=$this.data('popover'),options=typeof option=='object'&&option 11 | if(!data)$this.data('popover',(data=new Popover(this,options))) 12 | if(typeof option=='string')data[option]()})} 13 | $.fn.popover.Constructor=Popover 14 | $.fn.popover.defaults=$.extend({},$.fn.tooltip.defaults,{placement:'right',trigger:'click',content:'',template:''}) 15 | $.fn.popover.noConflict=function(){$.fn.popover=old 16 | return this}}(window.jQuery); -------------------------------------------------------------------------------- /static/js/bootstrap-scrollspy.js: -------------------------------------------------------------------------------- 1 | !function($){"use strict";function ScrollSpy(element,options){var process=$.proxy(this.process,this),$element=$(element).is('body')?$(window):$(element),href 2 | this.options=$.extend({},$.fn.scrollspy.defaults,options) 3 | this.$scrollElement=$element.on('scroll.scroll-spy.data-api',process) 4 | this.selector=(this.options.target||((href=$(element).attr('href'))&&href.replace(/.*(?=#[^\s]+$)/,''))||'')+' .nav li > a' 5 | this.$body=$('body') 6 | this.refresh() 7 | this.process()} 8 | ScrollSpy.prototype={constructor:ScrollSpy,refresh:function(){var self=this,$targets 9 | this.offsets=$([]) 10 | this.targets=$([]) 11 | $targets=this.$body.find(this.selector).map(function(){var $el=$(this),href=$el.data('target')||$el.attr('href'),$href=/^#\w/.test(href)&&$(href) 12 | return($href&&$href.length&&[[$href.position().top+(!$.isWindow(self.$scrollElement.get(0))&&self.$scrollElement.scrollTop()),href]])||null}).sort(function(a,b){return a[0]-b[0]}).each(function(){self.offsets.push(this[0]) 13 | self.targets.push(this[1])})},process:function(){var scrollTop=this.$scrollElement.scrollTop()+this.options.offset,scrollHeight=this.$scrollElement[0].scrollHeight||this.$body[0].scrollHeight,maxScroll=scrollHeight-this.$scrollElement.height(),offsets=this.offsets,targets=this.targets,activeTarget=this.activeTarget,i 14 | if(scrollTop>=maxScroll){return activeTarget!=(i=targets.last()[0])&&this.activate(i)} 15 | for(i=offsets.length;i--;){activeTarget!=targets[i]&&scrollTop>=offsets[i]&&(!offsets[i+1]||scrollTop<=offsets[i+1])&&this.activate(targets[i])}},activate:function(target){var active,selector 16 | this.activeTarget=target 17 | $(this.selector).parent('.active').removeClass('active') 18 | selector=this.selector 19 | +'[data-target="'+target+'"],' 20 | +this.selector+'[href="'+target+'"]' 21 | active=$(selector).parent('li').addClass('active') 22 | if(active.parent('.dropdown-menu').length){active=active.closest('li.dropdown').addClass('active')} 23 | active.trigger('activate')}} 24 | var old=$.fn.scrollspy 25 | $.fn.scrollspy=function(option){return this.each(function(){var $this=$(this),data=$this.data('scrollspy'),options=typeof option=='object'&&option 26 | if(!data)$this.data('scrollspy',(data=new ScrollSpy(this,options))) 27 | if(typeof option=='string')data[option]()})} 28 | $.fn.scrollspy.Constructor=ScrollSpy 29 | $.fn.scrollspy.defaults={offset:10} 30 | $.fn.scrollspy.noConflict=function(){$.fn.scrollspy=old 31 | return this} 32 | $(window).on('load',function(){$('[data-spy="scroll"]').each(function(){var $spy=$(this) 33 | $spy.scrollspy($spy.data())})})}(window.jQuery); -------------------------------------------------------------------------------- /static/js/bootstrap-tab.js: -------------------------------------------------------------------------------- 1 | !function($){"use strict";var Tab=function(element){this.element=$(element)} 2 | Tab.prototype={constructor:Tab,show:function(){var $this=this.element,$ul=$this.closest('ul:not(.dropdown-menu)'),selector=$this.attr('data-target'),previous,$target,e 3 | if(!selector){selector=$this.attr('href') 4 | selector=selector&&selector.replace(/.*(?=#[^\s]*$)/,'')} 5 | if($this.parent('li').hasClass('active'))return 6 | previous=$ul.find('.active:last a')[0] 7 | e=$.Event('show',{relatedTarget:previous}) 8 | $this.trigger(e) 9 | if(e.isDefaultPrevented())return 10 | $target=$(selector) 11 | this.activate($this.parent('li'),$ul) 12 | this.activate($target,$target.parent(),function(){$this.trigger({type:'shown',relatedTarget:previous})})},activate:function(element,container,callback){var $active=container.find('> .active'),transition=callback&&$.support.transition&&$active.hasClass('fade') 13 | function next(){$active.removeClass('active').find('> .dropdown-menu > .active').removeClass('active') 14 | element.addClass('active') 15 | if(transition){element[0].offsetWidth 16 | element.addClass('in')}else{element.removeClass('fade')} 17 | if(element.parent('.dropdown-menu')){element.closest('li.dropdown').addClass('active')} 18 | callback&&callback()} 19 | transition?$active.one($.support.transition.end,next):next() 20 | $active.removeClass('in')}} 21 | var old=$.fn.tab 22 | $.fn.tab=function(option){return this.each(function(){var $this=$(this),data=$this.data('tab') 23 | if(!data)$this.data('tab',(data=new Tab(this))) 24 | if(typeof option=='string')data[option]()})} 25 | $.fn.tab.Constructor=Tab 26 | $.fn.tab.noConflict=function(){$.fn.tab=old 27 | return this} 28 | $(document).on('click.tab.data-api','[data-toggle="tab"], [data-toggle="pill"]',function(e){e.preventDefault() 29 | $(this).tab('show')})}(window.jQuery); -------------------------------------------------------------------------------- /static/js/bootstrap-transition.js: -------------------------------------------------------------------------------- 1 | !function($){"use strict";$(function(){$.support.transition=(function(){var transitionEnd=(function(){var el=document.createElement('bootstrap'),transEndEventNames={'WebkitTransition':'webkitTransitionEnd','MozTransition':'transitionend','OTransition':'oTransitionEnd otransitionend','transition':'transitionend'},name 2 | for(name in transEndEventNames){if(el.style[name]!==undefined){return transEndEventNames[name]}}}()) 3 | return transitionEnd&&{end:transitionEnd}})()})}(window.jQuery); -------------------------------------------------------------------------------- /static/js/buttons.bootstrap5.min.js: -------------------------------------------------------------------------------- 1 | /*! 2 | Bootstrap integration for DataTables' Buttons 3 | ©2016 SpryMedia Ltd - datatables.net/license 4 | */ 5 | (function(c){"function"===typeof define&&define.amd?define(["jquery","datatables.net-bs5","datatables.net-buttons"],function(a){return c(a,window,document)}):"object"===typeof exports?module.exports=function(a,b){a||(a=window);b&&b.fn.dataTable||(b=require("datatables.net-bs5")(a,b).$);b.fn.dataTable.Buttons||require("datatables.net-buttons")(a,b);return c(b,a,a.document)}:c(jQuery,window,document)})(function(c,a,b,f){a=c.fn.dataTable;c.extend(!0,a.Buttons.defaults,{dom:{container:{className:"dt-buttons btn-group flex-wrap"}, 6 | button:{className:"btn btn-secondary"},collection:{tag:"div",className:"dropdown-menu",closeButton:!1,button:{tag:"a",className:"dt-button dropdown-item",active:"active",disabled:"disabled"}},splitWrapper:{tag:"div",className:"dt-btn-split-wrapper btn-group",closeButton:!1},splitDropdown:{tag:"button",text:"",className:"btn btn-secondary dt-btn-split-drop dropdown-toggle dropdown-toggle-split",closeButton:!1,align:"split-left",splitAlignClass:"dt-button-split-left"},splitDropdownButton:{tag:"button", 7 | className:"dt-btn-split-drop-button btn btn-secondary",closeButton:!1}},buttonCreated:function(e,d){return e.buttons?c('').append(d):d}});a.ext.buttons.collection.className+=" dropdown-toggle";a.ext.buttons.collection.rightAlignClassName="dropdown-menu-right";return a.Buttons}); 8 | -------------------------------------------------------------------------------- /static/js/buttons.colVis.min.js: -------------------------------------------------------------------------------- 1 | /*! 2 | Column visibility buttons for Buttons and DataTables. 3 | 2016 SpryMedia Ltd - datatables.net/license 4 | */ 5 | (function(h){"function"===typeof define&&define.amd?define(["jquery","datatables.net","datatables.net-buttons"],function(e){return h(e,window,document)}):"object"===typeof exports?module.exports=function(e,g){e||(e=window);g&&g.fn.dataTable||(g=require("datatables.net")(e,g).$);g.fn.dataTable.Buttons||require("datatables.net-buttons")(e,g);return h(g,e,e.document)}:h(jQuery,window,document)})(function(h,e,g,l){e=h.fn.dataTable;h.extend(e.ext.buttons,{colvis:function(b,a){var c=null,d={extend:"collection", 6 | init:function(f,k){c=k},text:function(f){return f.i18n("buttons.colvis","Column visibility")},className:"buttons-colvis",closeButton:!1,buttons:[{extend:"columnsToggle",columns:a.columns,columnText:a.columnText}]};b.on("column-reorder.dt"+a.namespace,function(f,k,m){b.button(null,b.button(null,c).node()).collectionRebuild([{extend:"columnsToggle",columns:a.columns,columnText:a.columnText}])});return d},columnsToggle:function(b,a){return b.columns(a.columns).indexes().map(function(c){return{extend:"columnToggle", 7 | columns:c,columnText:a.columnText}}).toArray()},columnToggle:function(b,a){return{extend:"columnVisibility",columns:a.columns,columnText:a.columnText}},columnsVisibility:function(b,a){return b.columns(a.columns).indexes().map(function(c){return{extend:"columnVisibility",columns:c,visibility:a.visibility,columnText:a.columnText}}).toArray()},columnVisibility:{columns:l,text:function(b,a,c){return c._columnText(b,c)},className:"buttons-columnVisibility",action:function(b,a,c,d){b=a.columns(d.columns); 8 | a=b.visible();b.visible(d.visibility!==l?d.visibility:!(a.length&&a[0]))},init:function(b,a,c){var d=this;a.attr("data-cv-idx",c.columns);b.on("column-visibility.dt"+c.namespace,function(f,k){k.bDestroying||k.nTable!=b.settings()[0].nTable||d.active(b.column(c.columns).visible())}).on("column-reorder.dt"+c.namespace,function(f,k,m){c.destroying||1!==b.columns(c.columns).count()||(d.text(c._columnText(b,c)),d.active(b.column(c.columns).visible()))});this.active(b.column(c.columns).visible())},destroy:function(b, 9 | a,c){b.off("column-visibility.dt"+c.namespace).off("column-reorder.dt"+c.namespace)},_columnText:function(b,a){var c=b.column(a.columns).index(),d=b.settings()[0].aoColumns[c].sTitle;d||(d=b.column(c).header().innerHTML);d=d.replace(/\n/g," ").replace(//gi," ").replace(//g,"").replace(//g,"").replace(/<.*?>/g,"").replace(/^\s+|\s+$/g,"");return a.columnText?a.columnText(b,c,d):d}},colvisRestore:{className:"buttons-colvisRestore",text:function(b){return b.i18n("buttons.colvisRestore", 10 | "Restore visibility")},init:function(b,a,c){c._visOriginal=b.columns().indexes().map(function(d){return b.column(d).visible()}).toArray()},action:function(b,a,c,d){a.columns().every(function(f){f=a.colReorder&&a.colReorder.transpose?a.colReorder.transpose(f,"toOriginal"):f;this.visible(d._visOriginal[f])})}},colvisGroup:{className:"buttons-colvisGroup",action:function(b,a,c,d){a.columns(d.show).visible(!0,!1);a.columns(d.hide).visible(!1,!1);a.columns.adjust()},show:[],hide:[]}});return e.Buttons}); 11 | -------------------------------------------------------------------------------- /static/js/buttons.print.min.js: -------------------------------------------------------------------------------- 1 | /*! 2 | Print button for Buttons and DataTables. 3 | 2016 SpryMedia Ltd - datatables.net/license 4 | */ 5 | (function(b){"function"===typeof define&&define.amd?define(["jquery","datatables.net","datatables.net-buttons"],function(d){return b(d,window,document)}):"object"===typeof exports?module.exports=function(d,h){d||(d=window);h&&h.fn.dataTable||(h=require("datatables.net")(d,h).$);h.fn.dataTable.Buttons||require("datatables.net-buttons")(d,h);return b(h,d,d.document)}:b(jQuery,window,document)})(function(b,d,h,y){var u=b.fn.dataTable,n=h.createElement("a"),v=function(a){n.href=a;a=n.host;-1===a.indexOf("/")&& 6 | 0!==n.pathname.indexOf("/")&&(a+="/");return n.protocol+"//"+a+n.pathname+n.search};u.ext.buttons.print={className:"buttons-print",text:function(a){return a.i18n("buttons.print","Print")},action:function(a,e,p,k){a=e.buttons.exportData(b.extend({decodeEntities:!1},k.exportOptions));p=e.buttons.exportInfo(k);var w=e.columns(k.exportOptions.columns).flatten().map(function(f){return e.settings()[0].aoColumns[e.column(f).index()].sClass}).toArray(),r=function(f,g){for(var x="",l=0,z=f.length;l"+(null===f[l]||f[l]===y?"":f[l])+""+g+">";return x+""},m='';k.header&&(m+=""+r(a.header,"th")+"");m+="";for(var t=0,A=a.body.length;t";k.footer&&a.footer&&(m+=""+r(a.footer,"th")+"");m+="";var c=d.open("","");if(c){c.document.close();var q=""+p.title+"";b("style, link").each(function(){var f=q,g=b(this).clone()[0]; 8 | "link"===g.nodeName.toLowerCase()&&(g.href=v(g.href));q=f+g.outerHTML});try{c.document.head.innerHTML=q}catch(f){b(c.document.head).html(q)}c.document.body.innerHTML=""+p.title+""+(p.messageTop||"")+""+m+""+(p.messageBottom||"")+"";b(c.document.body).addClass("dt-print-view");b("img",c.document.body).each(function(f,g){g.setAttribute("src",v(g.getAttribute("src")))});k.customize&&k.customize(c,k,e);a=function(){k.autoPrint&&(c.print(),c.close())};navigator.userAgent.match(/Trident\/\d.\d/)? 9 | a():c.setTimeout(a,1E3)}else e.buttons.info(e.i18n("buttons.printErrorTitle","Unable to open print view"),e.i18n("buttons.printErrorMsg","Please allow popups in your browser for this site to be able to view the print view."),5E3)},title:"*",messageTop:"*",messageBottom:"*",exportOptions:{},header:!0,footer:!1,autoPrint:!0,customize:null};return u.Buttons}); 10 | -------------------------------------------------------------------------------- /static/js/calendar.demo.js: -------------------------------------------------------------------------------- 1 | var handleRenderFullcalendar=function(){var containerEl=document.getElementById('external-events');var Draggable=FullCalendarInteraction.Draggable;new Draggable(containerEl,{itemSelector:'.fc-event-link',eventData:function(eventEl){return{title:eventEl.innerText,color:eventEl.getAttribute('data-color')};}});var d=new Date();var month=d.getMonth()+1;month=(month<10)?'0'+month:month;var year=d.getFullYear();var day=d.getDate();var today=moment().startOf('day');var calendarElm=document.getElementById('calendar');var calendar=new FullCalendar.Calendar(calendarElm,{headerToolbar:{left:'dayGridMonth,timeGridWeek,timeGridDay',center:'title',right:'prev,next today'},buttonText:{today:'Today',month:'Month',week:'Week',day:'Day'},initialView:'dayGridMonth',editable:true,droppable:true,themeSystem:'bootstrap',eventLimit:true,views:{timeGrid:{eventLimit:6}},events:[{title:'Trip to London',start:year+'-'+month+'-01',end:year+'-'+month+'-05',color:app.color.theme},{title:'Meet with Sean Ngu',start:year+'-'+month+'-02T06:00:00',color:app.color.blue},{title:'Mobile Apps Brainstorming',start:year+'-'+month+'-10',end:year+'-'+month+'-12',color:app.color.pink},{title:'Stonehenge, Windsor Castle, Oxford',start:year+'-'+month+'-05T08:45:00',end:year+'-'+month+'-06T18:00',color:app.color.indigo},{title:'Paris Trip',start:year+'-'+month+'-12',end:year+'-'+month+'-16'},{title:'Domain name due',start:year+'-'+month+'-15',end:year+'-'+month+'-15',color:app.color.blue},{title:'Cambridge Trip',start:year+'-'+month+'-19',end:year+'-'+month+'-19'},{title:'Visit Apple Company',start:year+'-'+month+'-22T05:00:00',color:app.color.green},{title:'Exercise Class',start:year+'-'+month+'-22T07:30:00',color:app.color.orange},{title:'Live Recording',start:year+'-'+month+'-22T03:00:00',color:app.color.blue},{title:'Announcement',start:year+'-'+month+'-22T15:00:00',color:app.color.red},{title:'Dinner',start:year+'-'+month+'-22T18:00:00'},{title:'New Android App Discussion',start:year+'-'+month+'-25T08:00:00',end:year+'-'+month+'-25T10:00:00',color:app.color.red},{title:'Marketing Plan Presentation',start:year+'-'+month+'-25T12:00:00',end:year+'-'+month+'-25T14:00:00',color:app.color.blue},{title:'Chase due',start:year+'-'+month+'-26T12:00:00',color:app.color.orange},{title:'Heartguard',start:year+'-'+month+'-26T08:00:00',color:app.color.orange},{title:'Lunch with Richard',start:year+'-'+month+'-28T14:00:00',color:app.color.blue},{title:'Web Hosting due',start:year+'-'+month+'-30',color:app.color.blue}]});calendar.render();};$(document).ready(function(){handleRenderFullcalendar();}); -------------------------------------------------------------------------------- /static/js/canvas-to-blob.min.js: -------------------------------------------------------------------------------- 1 | !function(t){"use strict";var a=t.HTMLCanvasElement&&t.HTMLCanvasElement.prototype,l=t.Blob&&function(){try{return Boolean(new Blob)}catch(t){return!1}}(),u=l&&t.Uint8Array&&function(){try{return 100===new Blob([new Uint8Array(100)]).size}catch(t){return!1}}(),c=t.BlobBuilder||t.WebKitBlobBuilder||t.MozBlobBuilder||t.MSBlobBuilder,b=/^data:((.*?)(;charset=.*?)?)(;base64)?,/,r=(l||c)&&t.atob&&t.ArrayBuffer&&t.Uint8Array&&function(t){var e,o,n,a,r,i=t.match(b);if(!i)throw new Error("invalid data URI");for(e=i[2]?i[1]:"text/plain"+(i[3]||";charset=US-ASCII"),n=!!i[4],i=t.slice(i[0].length),o=(n?atob:decodeURIComponent)(i),n=new ArrayBuffer(o.length),a=new Uint8Array(n),r=0;r=767)?$(window).height()-$('.summernote').offset().top-90:400;$('.summernote').summernote({height:totalHeight});};var handleEmailTagsInput=function(){$('#email-to').tagit({availableTags:["admin2@seantheme.com","admin3@seantheme.com","admin4@seantheme.com","admin5@seantheme.com","admin6@seantheme.com","admin7@seantheme.com","admin8@seantheme.com"]});$('#email-cc').tagit({availableTags:["admin2@seantheme.com","admin3@seantheme.com","admin4@seantheme.com","admin5@seantheme.com","admin6@seantheme.com","admin7@seantheme.com","admin8@seantheme.com"]});$('#email-bcc').tagit({availableTags:["admin2@seantheme.com","admin3@seantheme.com","admin4@seantheme.com","admin5@seantheme.com","admin6@seantheme.com","admin7@seantheme.com","admin8@seantheme.com"]});};$(document).ready(function(){handleRenderSummernote();handleEmailTagsInput();}); -------------------------------------------------------------------------------- /static/js/email-decode.min.js: -------------------------------------------------------------------------------- 1 | !function(){"use strict";function e(e){try{if("undefined"==typeof console)return;"error"in console?console.error(e):console.log(e)}catch(e){}}function t(e){return d.innerHTML='',d.childNodes[0].getAttribute("href")||""}function r(e,t){var r=e.substr(t,2);return parseInt(r,16)}function n(n,c){for(var o="",a=r(n,c),i=c+2;i-1&&(o.href="mailto:"+n(o.href,a+l.length))}catch(i){e(i)}}function o(t){for(var r=t.querySelectorAll(u),c=0;coptions.maxNumberOfFiles){file.error=settings.i18n('maxNumberOfFiles');}else if(options.acceptFileTypes&&!(options.acceptFileTypes.test(file.type)||options.acceptFileTypes.test(file.name))){file.error=settings.i18n('acceptFileTypes');}else if(fileSize>options.maxFileSize){file.error=settings.i18n('maxFileSize');}else if($.type(fileSize)==='number'&&fileSize');form.attr('accept-charset',options.formAcceptCharset);addParamChar=/\?/.test(options.url)?'&':'?';if(options.type==='DELETE'){options.url=options.url+addParamChar+'_method=DELETE';options.type='POST';}else if(options.type==='PUT'){options.url=options.url+addParamChar+'_method=PUT';options.type='POST';}else if(options.type==='PATCH'){options.url=options.url+addParamChar+'_method=PATCH';options.type='POST';} 3 | counter+=1;iframe=$('').on('load',function(){var fileInputClones,paramNames=$.isArray(options.paramName)?options.paramName:[options.paramName];iframe.off('load').on('load',function(){var response;try{response=iframe.contents();if(!response.length||!response[0].firstChild){throw new Error();}}catch(e){response=undefined;} 8 | completeCallback(200,'success',{iframe:response});$('').appendTo(form);window.setTimeout(function(){form.remove();},0);});form.prop('target',iframe.prop('name')).prop('action',options.url).prop('method',options.type);if(options.formData){$.each(options.formData,function(index,field){$('').prop('name',field.name).val(field.value).appendTo(form);});} 9 | if(options.fileInput&&options.fileInput.length&&options.type==='POST'){fileInputClones=options.fileInput.clone();options.fileInput.after(function(index){return fileInputClones[index];});if(options.paramName){options.fileInput.each(function(index){$(this).prop('name',paramNames[index]||options.paramName);});} 10 | form.append(options.fileInput).prop('enctype','multipart/form-data').prop('encoding','multipart/form-data');options.fileInput.removeAttr('form');} 11 | window.setTimeout(function(){form.submit();if(fileInputClones&&fileInputClones.length){options.fileInput.each(function(index,input){var clone=$(fileInputClones[index]);$(input).prop('name',clone.prop('name')).attr('form',clone.attr('form'));clone.replaceWith(input);});}},0);});form.append(iframe).appendTo(document.body);},abort:function(){if(iframe){iframe.off('load').prop('src',initialIframeSrc);} 12 | if(form){form.remove();}}};}});$.ajaxSetup({converters:{'iframe text':function(iframe){return iframe&&$(iframe[0].body).text();},'iframe json':function(iframe){return iframe&&jsonAPI[jsonParse]($(iframe[0].body).text());},'iframe html':function(iframe){return iframe&&$(iframe[0].body).html();},'iframe xml':function(iframe){var xmlDoc=iframe&&iframe[0];return xmlDoc&&$.isXMLDoc(xmlDoc)?xmlDoc:$.parseXML((xmlDoc.XMLDocument&&xmlDoc.XMLDocument.xml)||$(xmlDoc.body).html());},'iframe script':function(iframe){return iframe&&$.globalEval($(iframe[0].body).text());}}});}); -------------------------------------------------------------------------------- /static/js/main.global5.js: -------------------------------------------------------------------------------- 1 | /*! 2 | FullCalendar v5.10.1 3 | Docs & License: https://fullcalendar.io/ 4 | (c) 2021 Adam Shaw 5 | */var FullCalendarBootstrap=(function(exports,common){'use strict';/*! ***************************************************************************** 6 | Copyright (c) Microsoft Corporation. 7 | Permission to use, copy, modify, and/or distribute this software for any 8 | purpose with or without fee is hereby granted. 9 | THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH 10 | REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY 11 | AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, 12 | INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM 13 | LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR 14 | OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR 15 | PERFORMANCE OF THIS SOFTWARE. 16 | ***************************************************************************** */var extendStatics=function(d,b){extendStatics=Object.setPrototypeOf||({__proto__:[]}instanceof Array&&function(d,b){d.__proto__=b;})||function(d,b){for(var p in b)if(Object.prototype.hasOwnProperty.call(b,p))d[p]=b[p];};return extendStatics(d,b);};function __extends(d,b){if(typeof b!=="function"&&b!==null) 17 | throw new TypeError("Class extends value "+String(b)+" is not a constructor or null");extendStatics(d,b);function __(){this.constructor=d;} 18 | d.prototype=b===null?Object.create(b):(__.prototype=b.prototype,new __());} 19 | var BootstrapTheme=(function(_super){__extends(BootstrapTheme,_super);function BootstrapTheme(){return _super!==null&&_super.apply(this,arguments)||this;} 20 | return BootstrapTheme;}(common.Theme));BootstrapTheme.prototype.classes={root:'fc-theme-bootstrap',table:'table-bordered',tableCellShaded:'table-active',buttonGroup:'btn-group',button:'btn btn-primary',buttonActive:'active',popover:'popover',popoverHeader:'popover-header',popoverContent:'popover-body',};BootstrapTheme.prototype.baseIconClass='fa';BootstrapTheme.prototype.iconClasses={close:'fa-times',prev:'fa-chevron-left',next:'fa-chevron-right',prevYear:'fa-angle-double-left',nextYear:'fa-angle-double-right',};BootstrapTheme.prototype.rtlIconClasses={prev:'fa-chevron-right',next:'fa-chevron-left',prevYear:'fa-angle-double-right',nextYear:'fa-angle-double-left',};BootstrapTheme.prototype.iconOverrideOption='bootstrapFontAwesome';BootstrapTheme.prototype.iconOverrideCustomButtonOption='bootstrapFontAwesome';BootstrapTheme.prototype.iconOverridePrefix='fa-';var plugin=common.createPlugin({themeClasses:{bootstrap:BootstrapTheme,},});common.globalPlugins.push(plugin);exports.BootstrapTheme=BootstrapTheme;exports.default=plugin;Object.defineProperty(exports,'__esModule',{value:true});return exports;}({},FullCalendar)); -------------------------------------------------------------------------------- /static/js/page-coming-soon.demo.js: -------------------------------------------------------------------------------- 1 | var handleRenderCountdownTimer=function(){var newYear=new Date();newYear=new Date(newYear.getFullYear()+1,1-1,1);$('#timer').countdown({until:newYear});};$(document).ready(function(){handleRenderCountdownTimer();}); -------------------------------------------------------------------------------- /static/js/page-gallery.demo.js: -------------------------------------------------------------------------------- 1 | var handleRenderGallery=function(){var gallerySelector='.gallery-image-list';var parseThumbnailElements=function(el){var thumbElements=el.childNodes,numNodes=thumbElements.length,items=[],figureEl,linkEl,size,item;for(var i=0;i1){item.title=figureEl.children[1].innerHTML;} 3 | if(linkEl.children.length>0){item.msrc=linkEl.children[0].getAttribute('src');} 4 | item.el=figureEl;items.push(item);} 5 | return items;};var closest=function closest(el,fn){return el&&(fn(el)?el:closest(el.parentNode,fn));};var onThumbnailsClick=function(e){e=e||window.event;if(e.preventDefault){e.preventDefault();}else{e.returnValue=false;} 6 | var eTarget=e.target||e.srcElement;var clickedListItem=closest(eTarget,function(el){return(el.tagName&&el.tagName.toUpperCase()==='LI');});if(!clickedListItem){return;} 7 | var clickedGallery=clickedListItem.parentNode,childNodes=clickedListItem.parentNode.childNodes,numChildNodes=childNodes.length,nodeIndex=0,index;for(var i=0;i=0){openPhotoSwipe(index,clickedGallery);} 11 | return false;};var photoswipeParseHash=function(){var hash=window.location.hash.substring(1),params={};if(hash.length<5){return params;} 12 | var vars=hash.split('&');for(var i=0;i11)?'pm':'am';h=(h>12)?h-12:h;document.getElementById('time').innerHTML=h+":"+m+a;var t=setTimeout(handleStartTime,500);};var handleSelectTable=function(){"use strict";$(document).on('click','[data-toggle="select-table"]',function(e){e.preventDefault();var targetTable=$(this).closest('.pos-checkout-table');if($(targetTable).hasClass('in-use')){$('[data-toggle="select-table"]').not(this).closest('.pos-checkout-table').removeClass('selected');$(targetTable).toggleClass('selected');$('#pos').toggleClass('pos-mobile-sidebar-toggled');}});};$(document).ready(function(){handleStartTime();handleSelectTable();if(!app.isMobile){$('[data-toggle="select-table"]').first().trigger('click');}}); -------------------------------------------------------------------------------- /static/js/pos-customer-order.demo.js: -------------------------------------------------------------------------------- 1 | var handleFilter=function(){"use strict";$(document).on('click','.pos-menu [data-filter]',function(e){e.preventDefault();var targetType=$(this).attr('data-filter');$(this).addClass('active');$('.pos-menu [data-filter]').not(this).removeClass('active');if(targetType=='all'){$('.pos-content [data-type]').removeClass('d-none');}else{$('.pos-content [data-type="'+targetType+'"]').removeClass('d-none');$('.pos-content [data-type]').not('.pos-content [data-type="'+targetType+'"]').addClass('d-none');}});};document.addEventListener('DOMContentLoaded',function(){handleFilter();}); -------------------------------------------------------------------------------- /static/js/pos-kitchen-order.demo.js: -------------------------------------------------------------------------------- 1 | var handleCheckTime=function(i){"use strict";if(i<10){i="0"+i};return i;};var handleStartTime=function(){"use strict";var today=new Date();var h=today.getHours();var m=today.getMinutes();var s=today.getSeconds();var a;m=handleCheckTime(m);s=handleCheckTime(s);a=(h>11)?'pm':'am';h=(h>12)?h-12:h;document.getElementById('time').innerHTML=h+":"+m+a;var t=setTimeout(handleStartTime,500);};$(document).ready(function(){handleStartTime();}); -------------------------------------------------------------------------------- /static/js/pos-table-booking.demo.js: -------------------------------------------------------------------------------- 1 | var handleCheckTime=function(i){"use strict";if(i<10){i="0"+i};return i;};var handleStartTime=function(){"use strict";var today=new Date();var h=today.getHours();var m=today.getMinutes();var s=today.getSeconds();var a;m=handleCheckTime(m);s=handleCheckTime(s);a=(h>11)?'pm':'am';h=(h>12)?h-12:h;document.getElementById('time').innerHTML=h+":"+m+a;var t=setTimeout(handleStartTime,500);};var handleDatepicker=function(){"use strict";$('[data-render="datepicker"]').datepicker({todayHighlight:true,autoclose:true});};$(document).ready(function(){handleStartTime();handleDatepicker();}); -------------------------------------------------------------------------------- /static/js/responsive.bootstrap5.min.js: -------------------------------------------------------------------------------- 1 | /*! 2 | Bootstrap 5 integration for DataTables' Responsive 3 | ©2021 SpryMedia Ltd - datatables.net/license 4 | */ 5 | var $jscomp=$jscomp||{};$jscomp.scope={};$jscomp.findInternal=function(a,b,c){a instanceof String&&(a=String(a));for(var e=a.length,d=0;d'), 12 | g;a(function(){g=new bootstrap.Modal(f[0])});c.modal=function(k){return function(l,h,m){if(!a.fn.modal)d(l,h,m);else if(!h){if(k&&k.header){h=f.find("div.modal-header");var n=h.find("button").detach();h.empty().append(''+k.header(l)+"").append(n)}f.find("div.modal-body").empty().append(m());f.appendTo("body").modal();g.show()}}};return b.Responsive}); 13 | -------------------------------------------------------------------------------- /static/js/sidebar-scrollspy.demo.js: -------------------------------------------------------------------------------- 1 | $(document).ready(function(){var scrollSpy=new bootstrap.ScrollSpy(document.body,{target:'#sidebar-bootstrap',offset:200})}); -------------------------------------------------------------------------------- /static/js/table-plugins.demo.js: -------------------------------------------------------------------------------- 1 | var handleRenderTableData=function(){var table=$('#datatableDefault').DataTable({dom:"<'row mb-3'<'col-md-4 mb-3 mb-md-0'l><'col-md-8 text-right'<'d-flex justify-content-end'fB>>>t<'row align-items-center'<'mr-auto col-md-6 mb-3 mb-md-0 mt-n2 'i><'mb-0 col-md-6'p>>",lengthMenu:[10,20,30,40,50],responsive:true,buttons:[{extend:'print',className:'btn btn-outline-default btn-sm ms-2'},{extend:'csv',className:'btn btn-outline-default btn-sm'}]});};$(document).ready(function(){handleRenderTableData();}); -------------------------------------------------------------------------------- /static/js/tmpl.min.js: -------------------------------------------------------------------------------- 1 | !function(e){"use strict";function r(e,n){var t=/[^\w\-.:]/.test(e)?new Function(r.arg+",tmpl","var _e=tmpl.encode"+r.helper+",_s='"+e.replace(r.regexp,r.func)+"';return _s;"):r.cache[e]=r.cache[e]||r(r.load(e));return n?t(n,r):function(e){return t(e,r)}}r.cache={},r.load=function(e){return document.getElementById(e).innerHTML},r.regexp=/([\s'\\])(?!(?:[^{]|\{(?!%))*%\})|(?:\{%(=|#)([\s\S]+?)%\})|(\{%)|(%\})/g,r.func=function(e,n,t,r,c,u){return n?{"\n":"\\n","\r":"\\r","\t":"\\t"," ":" "}[n]||"\\"+n:t?"="===t?"'+_e("+r+")+'":"'+("+r+"==null?'':"+r+")+'":c?"';":u?"_s+='":void 0},r.encReg=/[<>&"'\x00]/g,r.encMap={"<":"<",">":">","&":"&",'"':""","'":"'"},r.encode=function(e){return(null==e?"":""+e).replace(r.encReg,function(e){return r.encMap[e]||""})},r.arg="o",r.helper=",print=function(s,e){_s+=e?(s==null?'':s):_e(s);},include=function(s,d){_s+=tmpl(s,d);}","function"==typeof define&&define.amd?define(function(){return r}):"object"==typeof module&&module.exports?module.exports=r:e.tmpl=r}(this); 2 | //# sourceMappingURL=tmpl.min.js.map -------------------------------------------------------------------------------- /static/js/ui-modal-notification.demo.js: -------------------------------------------------------------------------------- 1 | var handleToastsInit=function(){$('[data-init="toast"]').toast('show');};var handleToastToggle=function(){$(document).on('click','[data-toggle="toast"]',function(e){e.preventDefault();var targetElm=$(this).attr('data-target');$(targetElm).toast('show');});};$(document).ready(function(){handleToastsInit();handleToastToggle();}); -------------------------------------------------------------------------------- /static/js/widgets.demo.js: -------------------------------------------------------------------------------- 1 | var handleRenderChartJs=function(){Chart.defaults.font.family=app.font.family;Chart.defaults.color='rgba('+app.color.whiteRgb+', .5)';Chart.defaults.plugins.legend.display=false;Chart.defaults.plugins.tooltip.padding=8;Chart.defaults.plugins.tooltip.backgroundColor='rgba('+app.color.gray800Rgb+', .95)';Chart.defaults.plugins.tooltip.titleFont.family=app.font.family;Chart.defaults.plugins.tooltip.titleFont.weight=600;Chart.defaults.plugins.tooltip.footerFont.family=app.font.family;Chart.defaults.scale.grid.color='rgba('+app.color.whiteRgb+', .25)';Chart.defaults.scale.ticks.backdropColor='rgba('+app.color.whiteRgb+', 0)';var ctx=document.getElementById('barChart');var barChart=new Chart(ctx,{type:'bar',data:{labels:['S','M','T','W','T','F','S'],datasets:[{label:'Total Visitors',data:[37,31,36,34,43,31,50],backgroundColor:'rgba('+app.color.whiteRgb+', .5)',borderColor:'transparent'}]},options:{legend:{display:false},tooltips:{callbacks:{title:function(tooltipItems,data){var tooltipTitle='';switch(tooltipItems[0].index){case 0:tooltipTitle='Sunday';break;case 1:tooltipTitle='Monday';break;case 2:tooltipTitle='Tuesday';break;case 3:tooltipTitle='Wednesday';break;case 4:tooltipTitle='Thursday';break;case 5:tooltipTitle='Friday';break;case 6:tooltipTitle='Saturday';break;} 2 | return tooltipTitle;},labelColor:function(tooltipItem,chart){return{borderColor:'transparent',backgroundColor:'rgba('+app.color.whiteRgb+', .5)'};}}},scales:{yAxes:{gridLines:{borderDashOffset:10,drawTicks:false,drawBorder:false,borderDash:[10]},ticks:{display:false}},xAxes:{barPercentage:1,gridLines:{display:false}}}}});};$(document).ready(function(){handleRenderChartJs();}); -------------------------------------------------------------------------------- /static/picture/212837.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Mr-BeanSir/MailDou/ab947ed1a2c6b85f97b0883f8b065a798e518cc6/static/picture/212837.jpg -------------------------------------------------------------------------------- /static/picture/2128371.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Mr-BeanSir/MailDou/ab947ed1a2c6b85f97b0883f8b065a798e518cc6/static/picture/2128371.jpg -------------------------------------------------------------------------------- /static/picture/2128372.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Mr-BeanSir/MailDou/ab947ed1a2c6b85f97b0883f8b065a798e518cc6/static/picture/2128372.jpg -------------------------------------------------------------------------------- /static/picture/2128373.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Mr-BeanSir/MailDou/ab947ed1a2c6b85f97b0883f8b065a798e518cc6/static/picture/2128373.jpg -------------------------------------------------------------------------------- /static/picture/banner.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Mr-BeanSir/MailDou/ab947ed1a2c6b85f97b0883f8b065a798e518cc6/static/picture/banner.png -------------------------------------------------------------------------------- /static/picture/ffffff.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Mr-BeanSir/MailDou/ab947ed1a2c6b85f97b0883f8b065a798e518cc6/static/picture/ffffff.jpg -------------------------------------------------------------------------------- /static/picture/gallery-1.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Mr-BeanSir/MailDou/ab947ed1a2c6b85f97b0883f8b065a798e518cc6/static/picture/gallery-1.jpg -------------------------------------------------------------------------------- /static/picture/gallery-10.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Mr-BeanSir/MailDou/ab947ed1a2c6b85f97b0883f8b065a798e518cc6/static/picture/gallery-10.jpg -------------------------------------------------------------------------------- /static/picture/gallery-11.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Mr-BeanSir/MailDou/ab947ed1a2c6b85f97b0883f8b065a798e518cc6/static/picture/gallery-11.jpg -------------------------------------------------------------------------------- /static/picture/gallery-12.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Mr-BeanSir/MailDou/ab947ed1a2c6b85f97b0883f8b065a798e518cc6/static/picture/gallery-12.jpg -------------------------------------------------------------------------------- /static/picture/gallery-13.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Mr-BeanSir/MailDou/ab947ed1a2c6b85f97b0883f8b065a798e518cc6/static/picture/gallery-13.jpg -------------------------------------------------------------------------------- /static/picture/gallery-2.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Mr-BeanSir/MailDou/ab947ed1a2c6b85f97b0883f8b065a798e518cc6/static/picture/gallery-2.jpg -------------------------------------------------------------------------------- /static/picture/gallery-21.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Mr-BeanSir/MailDou/ab947ed1a2c6b85f97b0883f8b065a798e518cc6/static/picture/gallery-21.jpg -------------------------------------------------------------------------------- /static/picture/gallery-22.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Mr-BeanSir/MailDou/ab947ed1a2c6b85f97b0883f8b065a798e518cc6/static/picture/gallery-22.jpg -------------------------------------------------------------------------------- /static/picture/gallery-23.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Mr-BeanSir/MailDou/ab947ed1a2c6b85f97b0883f8b065a798e518cc6/static/picture/gallery-23.jpg -------------------------------------------------------------------------------- /static/picture/gallery-24.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Mr-BeanSir/MailDou/ab947ed1a2c6b85f97b0883f8b065a798e518cc6/static/picture/gallery-24.jpg -------------------------------------------------------------------------------- /static/picture/gallery-25.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Mr-BeanSir/MailDou/ab947ed1a2c6b85f97b0883f8b065a798e518cc6/static/picture/gallery-25.jpg -------------------------------------------------------------------------------- /static/picture/gallery-26.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Mr-BeanSir/MailDou/ab947ed1a2c6b85f97b0883f8b065a798e518cc6/static/picture/gallery-26.jpg -------------------------------------------------------------------------------- /static/picture/gallery-27.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Mr-BeanSir/MailDou/ab947ed1a2c6b85f97b0883f8b065a798e518cc6/static/picture/gallery-27.jpg -------------------------------------------------------------------------------- /static/picture/gallery-28.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Mr-BeanSir/MailDou/ab947ed1a2c6b85f97b0883f8b065a798e518cc6/static/picture/gallery-28.jpg -------------------------------------------------------------------------------- /static/picture/gallery-29.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Mr-BeanSir/MailDou/ab947ed1a2c6b85f97b0883f8b065a798e518cc6/static/picture/gallery-29.jpg -------------------------------------------------------------------------------- /static/picture/gallery-3.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Mr-BeanSir/MailDou/ab947ed1a2c6b85f97b0883f8b065a798e518cc6/static/picture/gallery-3.jpg -------------------------------------------------------------------------------- /static/picture/gallery-30.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Mr-BeanSir/MailDou/ab947ed1a2c6b85f97b0883f8b065a798e518cc6/static/picture/gallery-30.jpg -------------------------------------------------------------------------------- /static/picture/gallery-31.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Mr-BeanSir/MailDou/ab947ed1a2c6b85f97b0883f8b065a798e518cc6/static/picture/gallery-31.jpg -------------------------------------------------------------------------------- /static/picture/gallery-32.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Mr-BeanSir/MailDou/ab947ed1a2c6b85f97b0883f8b065a798e518cc6/static/picture/gallery-32.jpg -------------------------------------------------------------------------------- /static/picture/gallery-33.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Mr-BeanSir/MailDou/ab947ed1a2c6b85f97b0883f8b065a798e518cc6/static/picture/gallery-33.jpg -------------------------------------------------------------------------------- /static/picture/gallery-34.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Mr-BeanSir/MailDou/ab947ed1a2c6b85f97b0883f8b065a798e518cc6/static/picture/gallery-34.jpg -------------------------------------------------------------------------------- /static/picture/gallery-35.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Mr-BeanSir/MailDou/ab947ed1a2c6b85f97b0883f8b065a798e518cc6/static/picture/gallery-35.jpg -------------------------------------------------------------------------------- /static/picture/gallery-36.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Mr-BeanSir/MailDou/ab947ed1a2c6b85f97b0883f8b065a798e518cc6/static/picture/gallery-36.jpg -------------------------------------------------------------------------------- /static/picture/gallery-37.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Mr-BeanSir/MailDou/ab947ed1a2c6b85f97b0883f8b065a798e518cc6/static/picture/gallery-37.jpg -------------------------------------------------------------------------------- /static/picture/gallery-38.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Mr-BeanSir/MailDou/ab947ed1a2c6b85f97b0883f8b065a798e518cc6/static/picture/gallery-38.jpg -------------------------------------------------------------------------------- /static/picture/gallery-39.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Mr-BeanSir/MailDou/ab947ed1a2c6b85f97b0883f8b065a798e518cc6/static/picture/gallery-39.jpg -------------------------------------------------------------------------------- /static/picture/gallery-4.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Mr-BeanSir/MailDou/ab947ed1a2c6b85f97b0883f8b065a798e518cc6/static/picture/gallery-4.jpg -------------------------------------------------------------------------------- /static/picture/gallery-40.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Mr-BeanSir/MailDou/ab947ed1a2c6b85f97b0883f8b065a798e518cc6/static/picture/gallery-40.jpg -------------------------------------------------------------------------------- /static/picture/gallery-41.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Mr-BeanSir/MailDou/ab947ed1a2c6b85f97b0883f8b065a798e518cc6/static/picture/gallery-41.jpg -------------------------------------------------------------------------------- /static/picture/gallery-42.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Mr-BeanSir/MailDou/ab947ed1a2c6b85f97b0883f8b065a798e518cc6/static/picture/gallery-42.jpg -------------------------------------------------------------------------------- /static/picture/gallery-43.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Mr-BeanSir/MailDou/ab947ed1a2c6b85f97b0883f8b065a798e518cc6/static/picture/gallery-43.jpg -------------------------------------------------------------------------------- /static/picture/gallery-44.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Mr-BeanSir/MailDou/ab947ed1a2c6b85f97b0883f8b065a798e518cc6/static/picture/gallery-44.jpg -------------------------------------------------------------------------------- /static/picture/gallery-45.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Mr-BeanSir/MailDou/ab947ed1a2c6b85f97b0883f8b065a798e518cc6/static/picture/gallery-45.jpg -------------------------------------------------------------------------------- /static/picture/gallery-46.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Mr-BeanSir/MailDou/ab947ed1a2c6b85f97b0883f8b065a798e518cc6/static/picture/gallery-46.jpg -------------------------------------------------------------------------------- /static/picture/gallery-47.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Mr-BeanSir/MailDou/ab947ed1a2c6b85f97b0883f8b065a798e518cc6/static/picture/gallery-47.jpg -------------------------------------------------------------------------------- /static/picture/gallery-48.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Mr-BeanSir/MailDou/ab947ed1a2c6b85f97b0883f8b065a798e518cc6/static/picture/gallery-48.jpg -------------------------------------------------------------------------------- /static/picture/gallery-49.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Mr-BeanSir/MailDou/ab947ed1a2c6b85f97b0883f8b065a798e518cc6/static/picture/gallery-49.jpg -------------------------------------------------------------------------------- /static/picture/gallery-5.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Mr-BeanSir/MailDou/ab947ed1a2c6b85f97b0883f8b065a798e518cc6/static/picture/gallery-5.jpg -------------------------------------------------------------------------------- /static/picture/gallery-50.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Mr-BeanSir/MailDou/ab947ed1a2c6b85f97b0883f8b065a798e518cc6/static/picture/gallery-50.jpg -------------------------------------------------------------------------------- /static/picture/gallery-51.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Mr-BeanSir/MailDou/ab947ed1a2c6b85f97b0883f8b065a798e518cc6/static/picture/gallery-51.jpg -------------------------------------------------------------------------------- /static/picture/gallery-52.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Mr-BeanSir/MailDou/ab947ed1a2c6b85f97b0883f8b065a798e518cc6/static/picture/gallery-52.jpg -------------------------------------------------------------------------------- /static/picture/gallery-53.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Mr-BeanSir/MailDou/ab947ed1a2c6b85f97b0883f8b065a798e518cc6/static/picture/gallery-53.jpg -------------------------------------------------------------------------------- /static/picture/gallery-6.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Mr-BeanSir/MailDou/ab947ed1a2c6b85f97b0883f8b065a798e518cc6/static/picture/gallery-6.jpg -------------------------------------------------------------------------------- /static/picture/gallery-7.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Mr-BeanSir/MailDou/ab947ed1a2c6b85f97b0883f8b065a798e518cc6/static/picture/gallery-7.jpg -------------------------------------------------------------------------------- /static/picture/gallery-8.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Mr-BeanSir/MailDou/ab947ed1a2c6b85f97b0883f8b065a798e518cc6/static/picture/gallery-8.jpg -------------------------------------------------------------------------------- /static/picture/gallery-9.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Mr-BeanSir/MailDou/ab947ed1a2c6b85f97b0883f8b065a798e518cc6/static/picture/gallery-9.jpg -------------------------------------------------------------------------------- /static/picture/icon-table.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 5 | 8 | 9 | 10 | 13 | 14 | 15 | 16 | 17 | 19 | 20 | 21 | 22 | 23 | 26 | 27 | 28 | 29 | 30 | 35 | 36 | 37 | 38 | -------------------------------------------------------------------------------- /static/picture/logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Mr-BeanSir/MailDou/ab947ed1a2c6b85f97b0883f8b065a798e518cc6/static/picture/logo.png -------------------------------------------------------------------------------- /static/picture/mqdefault.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Mr-BeanSir/MailDou/ab947ed1a2c6b85f97b0883f8b065a798e518cc6/static/picture/mqdefault.jpg -------------------------------------------------------------------------------- /static/picture/mqdefault1.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Mr-BeanSir/MailDou/ab947ed1a2c6b85f97b0883f8b065a798e518cc6/static/picture/mqdefault1.jpg -------------------------------------------------------------------------------- /static/picture/mqdefault10.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Mr-BeanSir/MailDou/ab947ed1a2c6b85f97b0883f8b065a798e518cc6/static/picture/mqdefault10.jpg -------------------------------------------------------------------------------- /static/picture/mqdefault11.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Mr-BeanSir/MailDou/ab947ed1a2c6b85f97b0883f8b065a798e518cc6/static/picture/mqdefault11.jpg -------------------------------------------------------------------------------- /static/picture/mqdefault12.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Mr-BeanSir/MailDou/ab947ed1a2c6b85f97b0883f8b065a798e518cc6/static/picture/mqdefault12.jpg -------------------------------------------------------------------------------- /static/picture/mqdefault13.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Mr-BeanSir/MailDou/ab947ed1a2c6b85f97b0883f8b065a798e518cc6/static/picture/mqdefault13.jpg -------------------------------------------------------------------------------- /static/picture/mqdefault14.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Mr-BeanSir/MailDou/ab947ed1a2c6b85f97b0883f8b065a798e518cc6/static/picture/mqdefault14.jpg -------------------------------------------------------------------------------- /static/picture/mqdefault15.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Mr-BeanSir/MailDou/ab947ed1a2c6b85f97b0883f8b065a798e518cc6/static/picture/mqdefault15.jpg -------------------------------------------------------------------------------- /static/picture/mqdefault2.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Mr-BeanSir/MailDou/ab947ed1a2c6b85f97b0883f8b065a798e518cc6/static/picture/mqdefault2.jpg -------------------------------------------------------------------------------- /static/picture/mqdefault3.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Mr-BeanSir/MailDou/ab947ed1a2c6b85f97b0883f8b065a798e518cc6/static/picture/mqdefault3.jpg -------------------------------------------------------------------------------- /static/picture/mqdefault4.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Mr-BeanSir/MailDou/ab947ed1a2c6b85f97b0883f8b065a798e518cc6/static/picture/mqdefault4.jpg -------------------------------------------------------------------------------- /static/picture/mqdefault5.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Mr-BeanSir/MailDou/ab947ed1a2c6b85f97b0883f8b065a798e518cc6/static/picture/mqdefault5.jpg -------------------------------------------------------------------------------- /static/picture/mqdefault6.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Mr-BeanSir/MailDou/ab947ed1a2c6b85f97b0883f8b065a798e518cc6/static/picture/mqdefault6.jpg -------------------------------------------------------------------------------- /static/picture/mqdefault7.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Mr-BeanSir/MailDou/ab947ed1a2c6b85f97b0883f8b065a798e518cc6/static/picture/mqdefault7.jpg -------------------------------------------------------------------------------- /static/picture/mqdefault8.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Mr-BeanSir/MailDou/ab947ed1a2c6b85f97b0883f8b065a798e518cc6/static/picture/mqdefault8.jpg -------------------------------------------------------------------------------- /static/picture/mqdefault9.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Mr-BeanSir/MailDou/ab947ed1a2c6b85f97b0883f8b065a798e518cc6/static/picture/mqdefault9.jpg -------------------------------------------------------------------------------- /static/picture/product-1.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Mr-BeanSir/MailDou/ab947ed1a2c6b85f97b0883f8b065a798e518cc6/static/picture/product-1.jpg -------------------------------------------------------------------------------- /static/picture/product-10.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Mr-BeanSir/MailDou/ab947ed1a2c6b85f97b0883f8b065a798e518cc6/static/picture/product-10.jpg -------------------------------------------------------------------------------- /static/picture/product-11.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Mr-BeanSir/MailDou/ab947ed1a2c6b85f97b0883f8b065a798e518cc6/static/picture/product-11.jpg -------------------------------------------------------------------------------- /static/picture/product-12.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Mr-BeanSir/MailDou/ab947ed1a2c6b85f97b0883f8b065a798e518cc6/static/picture/product-12.jpg -------------------------------------------------------------------------------- /static/picture/product-13.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Mr-BeanSir/MailDou/ab947ed1a2c6b85f97b0883f8b065a798e518cc6/static/picture/product-13.jpg -------------------------------------------------------------------------------- /static/picture/product-14.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Mr-BeanSir/MailDou/ab947ed1a2c6b85f97b0883f8b065a798e518cc6/static/picture/product-14.jpg -------------------------------------------------------------------------------- /static/picture/product-15.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Mr-BeanSir/MailDou/ab947ed1a2c6b85f97b0883f8b065a798e518cc6/static/picture/product-15.jpg -------------------------------------------------------------------------------- /static/picture/product-2.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Mr-BeanSir/MailDou/ab947ed1a2c6b85f97b0883f8b065a798e518cc6/static/picture/product-2.jpg -------------------------------------------------------------------------------- /static/picture/product-3.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Mr-BeanSir/MailDou/ab947ed1a2c6b85f97b0883f8b065a798e518cc6/static/picture/product-3.jpg -------------------------------------------------------------------------------- /static/picture/product-6.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Mr-BeanSir/MailDou/ab947ed1a2c6b85f97b0883f8b065a798e518cc6/static/picture/product-6.jpg -------------------------------------------------------------------------------- /static/picture/product-7.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Mr-BeanSir/MailDou/ab947ed1a2c6b85f97b0883f8b065a798e518cc6/static/picture/product-7.jpg -------------------------------------------------------------------------------- /static/picture/product-8.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Mr-BeanSir/MailDou/ab947ed1a2c6b85f97b0883f8b065a798e518cc6/static/picture/product-8.jpg -------------------------------------------------------------------------------- /static/picture/product-9.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Mr-BeanSir/MailDou/ab947ed1a2c6b85f97b0883f8b065a798e518cc6/static/picture/product-9.jpg -------------------------------------------------------------------------------- /static/picture/product.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Mr-BeanSir/MailDou/ab947ed1a2c6b85f97b0883f8b065a798e518cc6/static/picture/product.png -------------------------------------------------------------------------------- /static/picture/profile.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Mr-BeanSir/MailDou/ab947ed1a2c6b85f97b0883f8b065a798e518cc6/static/picture/profile.jpg -------------------------------------------------------------------------------- /static/picture/user-1.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Mr-BeanSir/MailDou/ab947ed1a2c6b85f97b0883f8b065a798e518cc6/static/picture/user-1.jpg -------------------------------------------------------------------------------- /static/picture/user-10.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Mr-BeanSir/MailDou/ab947ed1a2c6b85f97b0883f8b065a798e518cc6/static/picture/user-10.jpg -------------------------------------------------------------------------------- /static/picture/user-2.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Mr-BeanSir/MailDou/ab947ed1a2c6b85f97b0883f8b065a798e518cc6/static/picture/user-2.jpg -------------------------------------------------------------------------------- /static/picture/user-3.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Mr-BeanSir/MailDou/ab947ed1a2c6b85f97b0883f8b065a798e518cc6/static/picture/user-3.jpg -------------------------------------------------------------------------------- /static/picture/user-4.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Mr-BeanSir/MailDou/ab947ed1a2c6b85f97b0883f8b065a798e518cc6/static/picture/user-4.jpg -------------------------------------------------------------------------------- /static/picture/user-5.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Mr-BeanSir/MailDou/ab947ed1a2c6b85f97b0883f8b065a798e518cc6/static/picture/user-5.jpg -------------------------------------------------------------------------------- /static/picture/user-6.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Mr-BeanSir/MailDou/ab947ed1a2c6b85f97b0883f8b065a798e518cc6/static/picture/user-6.jpg -------------------------------------------------------------------------------- /static/picture/user-7.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Mr-BeanSir/MailDou/ab947ed1a2c6b85f97b0883f8b065a798e518cc6/static/picture/user-7.jpg -------------------------------------------------------------------------------- /static/picture/user-8.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Mr-BeanSir/MailDou/ab947ed1a2c6b85f97b0883f8b065a798e518cc6/static/picture/user-8.jpg -------------------------------------------------------------------------------- /static/picture/user-9.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Mr-BeanSir/MailDou/ab947ed1a2c6b85f97b0883f8b065a798e518cc6/static/picture/user-9.jpg -------------------------------------------------------------------------------- /static/picture/user.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Mr-BeanSir/MailDou/ab947ed1a2c6b85f97b0883f8b065a798e518cc6/static/picture/user.jpg -------------------------------------------------------------------------------- /static/picture/widget-cover-1.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Mr-BeanSir/MailDou/ab947ed1a2c6b85f97b0883f8b065a798e518cc6/static/picture/widget-cover-1.jpg -------------------------------------------------------------------------------- /template/index/error.html: -------------------------------------------------------------------------------- 1 | {{ define "index/error.html" }} 2 | 3 | 4 | 5 | 6 | 错误 - 邮小豆 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | {{.tag}} 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 错误! 36 | {{.error}} 37 | 38 | 39 | 看一看我们的其他站点: 40 | 41 | 42 | 邮小豆 43 | 44 | 托管豆 45 | 46 | 下载豆 47 | 48 | 交流群 49 | 50 | 返回 52 | 53 | 54 | 55 | 56 | 57 | 58 | {{ end }} -------------------------------------------------------------------------------- /template/index/true.html: -------------------------------------------------------------------------------- 1 | {{ define "index/true.html" }} 2 | 3 | 4 | 5 | 6 | 提示 - 邮小豆 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | {{.tag}} 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 成功 36 | {{.error}} 37 | 38 | 39 | 看一看我们的其他站点: 40 | 41 | 42 | 邮小豆 43 | 44 | 托管豆 45 | 46 | 下载豆 47 | 48 | 交流群 49 | 50 | 返回 52 | 53 | 54 | 55 | 56 | 57 | 58 | {{ end }} -------------------------------------------------------------------------------- /template/public/footer.html: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Mr-BeanSir/MailDou/ab947ed1a2c6b85f97b0883f8b065a798e518cc6/template/public/footer.html -------------------------------------------------------------------------------- /template/public/script.html: -------------------------------------------------------------------------------- 1 | {{ define "public/script.html" }} 2 | 3 | 4 | 5 | {{ end }} -------------------------------------------------------------------------------- /template/public/sidebar.html: -------------------------------------------------------------------------------- 1 | {{ define "public/sidebar.html"}} 2 | 3 | 4 | 5 | 6 | 7 | Navigation 8 | 9 | 10 | 11 | 控制面板 12 | 13 | 14 | 15 | 16 | 17 | 写邮件 18 | 19 | 20 | Components 21 | 22 | 23 | 24 | 收件箱 25 | 26 | 27 | 28 | 29 | 30 | 已发送 31 | 32 | 33 | 34 | 35 | 36 | 垃圾箱 37 | 38 | 39 | 40 | 41 | 42 | 已删除 43 | 44 | 45 | 46 | Users 47 | 48 | 49 | 50 | 个人信息 51 | 52 | 53 | 54 | 55 | 56 | 57 | 说明文档 58 | 59 | 60 | 61 | 62 | 63 | {{ end }} -------------------------------------------------------------------------------- /template/public/toolsbars.html: -------------------------------------------------------------------------------- 1 | {{ define "public/toolsbars.html" }} 2 | 3 | Mailboxes 4 | 收件箱 5 | 6 | 发件箱 7 | 8 | 草稿箱 9 | 10 | 垃圾箱 11 | 12 | 已删除 13 | 14 | New 16 | Message 17 | 18 | {{ end }} --------------------------------------------------------------------------------
39 | 看一看我们的其他站点: 40 |
42 | 邮小豆 43 | 44 | 托管豆 45 | 46 | 下载豆 47 | 48 | 交流群 49 |