├── README.md
├── img
├── vm.png
├── wenda1.png
├── wenda2.png
├── wenda3.png
├── wenda4.png
├── wenda5.png
└── xshell.png
├── wenda.sql
└── wenda
├── .idea
├── compiler.xml
├── encodings.xml
├── inspectionProfiles
│ └── Project_Default.xml
├── libraries
│ ├── Maven__antlr_antlr_2_7_7.xml
│ ├── Maven__aopalliance_aopalliance_1_0.xml
│ ├── Maven__ch_qos_logback_logback_classic_1_1_7.xml
│ ├── Maven__ch_qos_logback_logback_core_1_1_7.xml
│ ├── Maven__com_alibaba_fastjson_1_2_13.xml
│ ├── Maven__com_fasterxml_classmate_1_1_0.xml
│ ├── Maven__com_fasterxml_jackson_core_jackson_annotations_2_6_7.xml
│ ├── Maven__com_fasterxml_jackson_core_jackson_core_2_6_7.xml
│ ├── Maven__com_fasterxml_jackson_core_jackson_databind_2_6_7.xml
│ ├── Maven__com_google_protobuf_protobuf_java_2_6_0.xml
│ ├── Maven__commons_beanutils_commons_beanutils_1_9_2.xml
│ ├── Maven__commons_chain_commons_chain_1_1.xml
│ ├── Maven__commons_collections_commons_collections_3_2_2.xml
│ ├── Maven__commons_digester_commons_digester_2_1.xml
│ ├── Maven__commons_lang_commons_lang_2_4.xml
│ ├── Maven__commons_validator_commons_validator_1_3_1.xml
│ ├── Maven__dom4j_dom4j_1_1.xml
│ ├── Maven__javax_activation_activation_1_1.xml
│ ├── Maven__javax_mail_mail_1_4_7.xml
│ ├── Maven__javax_validation_validation_api_1_1_0_Final.xml
│ ├── Maven__junit_junit_4_12.xml
│ ├── Maven__mysql_mysql_connector_java_8_0_12.xml
│ ├── Maven__org_apache_commons_commons_pool2_2_4_2.xml
│ ├── Maven__org_apache_struts_struts_core_1_3_8.xml
│ ├── Maven__org_apache_struts_struts_taglib_1_3_8.xml
│ ├── Maven__org_apache_struts_struts_tiles_1_3_8.xml
│ ├── Maven__org_apache_tomcat_embed_tomcat_embed_core_8_0_36.xml
│ ├── Maven__org_apache_tomcat_embed_tomcat_embed_el_8_0_36.xml
│ ├── Maven__org_apache_tomcat_embed_tomcat_embed_logging_juli_8_0_36.xml
│ ├── Maven__org_apache_tomcat_embed_tomcat_embed_websocket_8_0_36.xml
│ ├── Maven__org_apache_tomcat_tomcat_jdbc_8_0_36.xml
│ ├── Maven__org_apache_tomcat_tomcat_juli_8_0_36.xml
│ ├── Maven__org_apache_velocity_velocity_1_7.xml
│ ├── Maven__org_apache_velocity_velocity_tools_2_0.xml
│ ├── Maven__org_aspectj_aspectjweaver_1_8_9.xml
│ ├── Maven__org_hamcrest_hamcrest_core_1_3.xml
│ ├── Maven__org_hamcrest_hamcrest_library_1_3.xml
│ ├── Maven__org_hibernate_hibernate_validator_5_2_4_Final.xml
│ ├── Maven__org_jboss_logging_jboss_logging_3_3_0_Final.xml
│ ├── Maven__org_mockito_mockito_core_1_10_19.xml
│ ├── Maven__org_mybatis_mybatis_3_4_0.xml
│ ├── Maven__org_mybatis_mybatis_spring_1_3_0.xml
│ ├── Maven__org_mybatis_spring_boot_mybatis_spring_boot_autoconfigure_1_1_1.xml
│ ├── Maven__org_mybatis_spring_boot_mybatis_spring_boot_starter_1_1_1.xml
│ ├── Maven__org_objenesis_objenesis_2_1.xml
│ ├── Maven__org_slf4j_jcl_over_slf4j_1_7_21.xml
│ ├── Maven__org_slf4j_jul_to_slf4j_1_7_21.xml
│ ├── Maven__org_slf4j_log4j_over_slf4j_1_7_21.xml
│ ├── Maven__org_slf4j_slf4j_api_1_7_21.xml
│ ├── Maven__org_springframework_boot_spring_boot_1_3_6_RELEASE.xml
│ ├── Maven__org_springframework_boot_spring_boot_autoconfigure_1_3_6_RELEASE.xml
│ ├── Maven__org_springframework_boot_spring_boot_devtools_1_3_6_RELEASE.xml
│ ├── Maven__org_springframework_boot_spring_boot_starter_1_3_6_RELEASE.xml
│ ├── Maven__org_springframework_boot_spring_boot_starter_aop_1_3_6_RELEASE.xml
│ ├── Maven__org_springframework_boot_spring_boot_starter_jdbc_1_3_6_RELEASE.xml
│ ├── Maven__org_springframework_boot_spring_boot_starter_logging_1_3_6_RELEASE.xml
│ ├── Maven__org_springframework_boot_spring_boot_starter_test_1_3_6_RELEASE.xml
│ ├── Maven__org_springframework_boot_spring_boot_starter_tomcat_1_3_6_RELEASE.xml
│ ├── Maven__org_springframework_boot_spring_boot_starter_validation_1_3_6_RELEASE.xml
│ ├── Maven__org_springframework_boot_spring_boot_starter_velocity_1_3_6_RELEASE.xml
│ ├── Maven__org_springframework_boot_spring_boot_starter_web_1_3_6_RELEASE.xml
│ ├── Maven__org_springframework_spring_aop_4_2_7_RELEASE.xml
│ ├── Maven__org_springframework_spring_beans_4_2_7_RELEASE.xml
│ ├── Maven__org_springframework_spring_context_4_2_7_RELEASE.xml
│ ├── Maven__org_springframework_spring_context_support_4_2_7_RELEASE.xml
│ ├── Maven__org_springframework_spring_core_4_2_7_RELEASE.xml
│ ├── Maven__org_springframework_spring_expression_4_2_7_RELEASE.xml
│ ├── Maven__org_springframework_spring_jdbc_4_2_7_RELEASE.xml
│ ├── Maven__org_springframework_spring_test_4_2_7_RELEASE.xml
│ ├── Maven__org_springframework_spring_tx_4_2_7_RELEASE.xml
│ ├── Maven__org_springframework_spring_web_4_2_7_RELEASE.xml
│ ├── Maven__org_springframework_spring_webmvc_4_2_7_RELEASE.xml
│ ├── Maven__org_yaml_snakeyaml_1_16.xml
│ ├── Maven__oro_oro_2_0_8.xml
│ ├── Maven__redis_clients_jedis_2_9_0.xml
│ └── Maven__sslext_sslext_1_2_0.xml
├── misc.xml
├── modules.xml
└── workspace.xml
├── .mvn
└── wrapper
│ ├── maven-wrapper.jar
│ └── maven-wrapper.properties
├── mvnw
├── mvnw.cmd
├── pom.xml
├── pyspider
├── conf.json
└── data
│ ├── project.db
│ ├── result.db
│ ├── scheduler.1d
│ ├── scheduler.1h
│ ├── scheduler.all
│ └── task.db
├── src
├── main
│ ├── java
│ │ └── com
│ │ │ └── nowcoder
│ │ │ ├── WendaApplication.java
│ │ │ ├── aspect
│ │ │ └── LogAspect.java
│ │ │ ├── async
│ │ │ ├── EventConsumer.java
│ │ │ ├── EventHandler.java
│ │ │ ├── EventModel.java
│ │ │ ├── EventProducer.java
│ │ │ ├── EventType.java
│ │ │ └── handler
│ │ │ │ ├── FeedHandler.java
│ │ │ │ ├── FollowHandler.java
│ │ │ │ ├── LikeHandler.java
│ │ │ │ └── LoginExceptionHandler.java
│ │ │ ├── configuration
│ │ │ └── WendaWebConfiguration.java
│ │ │ ├── controller
│ │ │ ├── CommentController.java
│ │ │ ├── FeedController.java
│ │ │ ├── FollowController.java
│ │ │ ├── HomeController.java
│ │ │ ├── IndexController.java
│ │ │ ├── LikeController.java
│ │ │ ├── LoginController.java
│ │ │ ├── MessageController.java
│ │ │ ├── QuestionController.java
│ │ │ └── SettingController.java
│ │ │ ├── dao
│ │ │ ├── CommentDAO.java
│ │ │ ├── FeedDAO.java
│ │ │ ├── LoginTicketDAO.java
│ │ │ ├── MessageDAO.java
│ │ │ ├── QuestionDAO.java
│ │ │ └── UserDAO.java
│ │ │ ├── interceptor
│ │ │ ├── LoginRequredInterceptor.java
│ │ │ └── PassportInterceptor.java
│ │ │ ├── model
│ │ │ ├── Comment.java
│ │ │ ├── EntityType.java
│ │ │ ├── Feed.java
│ │ │ ├── HostHolder.java
│ │ │ ├── LoginTicket.java
│ │ │ ├── Message.java
│ │ │ ├── Question.java
│ │ │ ├── User.java
│ │ │ └── ViewObject.java
│ │ │ ├── service
│ │ │ ├── CommentService.java
│ │ │ ├── FeedService.java
│ │ │ ├── FollowService.java
│ │ │ ├── LikeService.java
│ │ │ ├── LoginTicketService.java
│ │ │ ├── MessageService.java
│ │ │ ├── QuestionService.java
│ │ │ ├── SensitiveService.java
│ │ │ ├── UserService.java
│ │ │ └── WendaService.java
│ │ │ └── util
│ │ │ ├── JedisAdapter.java
│ │ │ ├── MailSender.java
│ │ │ ├── RedisKeyUtil.java
│ │ │ └── WendaUtil.java
│ └── resources
│ │ ├── SensitiveWords.txt
│ │ ├── application.properties
│ │ ├── com
│ │ └── nowcoder
│ │ │ └── dao
│ │ │ ├── FeedDAO.xml
│ │ │ └── QuestionDAO.xml
│ │ ├── mybatis-config.xml
│ │ ├── static
│ │ ├── images
│ │ │ ├── img
│ │ │ │ ├── spinner2.8f60205d.gif
│ │ │ │ ├── sprites-1.9.2.4c54885a.png
│ │ │ │ ├── sprites-1.9.2@2x.6e638473.png
│ │ │ │ ├── sprites.auto.915a539c.png
│ │ │ │ └── sprites@2x.auto.dd5c79c1.png
│ │ │ └── res
│ │ │ │ ├── 070a9fb26_is.jpg
│ │ │ │ ├── 0b856ef58f76b7c83a0e130f6ef71281_200x112.jpg
│ │ │ │ ├── 0ba3da3f03ced7a438118b0be77df56c_m.jpg
│ │ │ │ ├── 0c6a39621ab1d456b1e6e492d0becc0c_s.jpg
│ │ │ │ ├── 0cf21546298ad1ed3cb64be61d822c27_m.jpg
│ │ │ │ ├── 0cffb89d0b0bd4e726ae54b212a31c3b_200x112.jpg
│ │ │ │ ├── 102799979_m.jpg
│ │ │ │ ├── 10a4cd7fb082375332be33eadfd14c58_is.jpg
│ │ │ │ ├── 11ba31c8bb5473a44b7690eff24b9123_is.jpg
│ │ │ │ ├── 11be4a90ed938abfbab4899df56ee754_s.png
│ │ │ │ ├── 12a8e1ce5ad8060fddb93ae2df98028b_m.jpg
│ │ │ │ ├── 19456ebfe8b207320735f282769ac635_s.jpg
│ │ │ │ ├── 1ac7840eeb19ada0bbf85f51702d5784_s.jpg
│ │ │ │ ├── 1ce495b02_m.jpg
│ │ │ │ ├── 23cace5cf60f39dbc095bd7a12b2cfad_200x112.jpg
│ │ │ │ ├── 24ce38dd5fc2a0c4e0525e577eef7d64_s.png
│ │ │ │ ├── 272627e471a533f58f319a9e600e0a94_is.png
│ │ │ │ ├── 2e21e58a990f5c756e813a64a4bba14c_m.jpg
│ │ │ │ ├── 31826765d442d8222a05cd67d0643a25_270x225.png
│ │ │ │ ├── 33fb6f51a3f4e16b6e89172040451dca_b.png
│ │ │ │ ├── 3b673d6335ef6788d1659ee2b6381e97_m.jpg
│ │ │ │ ├── 41d652d947a489e056b0179ba137294b_m.png
│ │ │ │ ├── 450c9d9f5240f05f73d21fe3ae76f1a6_200x112.jpg
│ │ │ │ ├── 4528283ed249589634546327431667bf_is.jpg
│ │ │ │ ├── 4d104b6c6a08f7e1a48f4f32c88b1ce2_m.jpg
│ │ │ │ ├── 51559bbebaa7fd395c271b7b1c8b9f26_m.jpg
│ │ │ │ ├── 558b3e3d8be209247159ba4f83ab1c02_200x112.jpg
│ │ │ │ ├── 6088e39f2_is.jpg
│ │ │ │ ├── 66a689b2c60557eae79d839aaedf48b0_200x112.png
│ │ │ │ ├── 6c76223a5aef2f1d29c680a2524de791_is.jpg
│ │ │ │ ├── 6ceea810748d179f57cac0baa5cf9592_s.jpg
│ │ │ │ ├── 6cfbfc0c5e3c5ecd8784f7e733a75b4f_m.jpg
│ │ │ │ ├── 6fd46860a4b6cbc1e52d676f217ea9fd_is.jpg
│ │ │ │ ├── 7412830858217e93f6c5d06f6328cbd5_200x112.png
│ │ │ │ ├── 7986ef6045f2cef8352be5affce5f7d1_is.jpg
│ │ │ │ ├── 837b60aa36029a2309974e74de3b62e9_xl.png
│ │ │ │ ├── 845303838eca4a5b5f03cc3ca994ec28_s.png
│ │ │ │ ├── 845c492813e72b85c6e11cccf8ed0ff8_m.jpg
│ │ │ │ ├── 935f87219_m.jpg
│ │ │ │ ├── 975baaf73fd76f48ce6f05e19b176878_xl.jpg
│ │ │ │ ├── 9cfe980ca44e38bd9b0e5c3dee5b0f3e_270x225.jpg
│ │ │ │ ├── 9ec0168d1b210d9b8f089e16f521b82b_200x112.jpg
│ │ │ │ ├── a3f80f6a6_m.jpg
│ │ │ │ ├── a4df63114bd9374a73775e30db1cdd36_is.jpg
│ │ │ │ ├── a57fdaff90865eaaef2e87051624862b_m.jpg
│ │ │ │ ├── aa49b7ceff22ea68ca5f747115cd17af_200x112.jpg
│ │ │ │ ├── aadd7b895_m.jpg
│ │ │ │ ├── aadd7b895_s.jpg
│ │ │ │ ├── actioncard-suggested-avatar.c5af416d.png
│ │ │ │ ├── actioncard-validation@2x.65147043.png
│ │ │ │ ├── b144d91ec_m.jpg
│ │ │ │ ├── b3aadf89405941b05a5ce00fb06f8281_m.jpg
│ │ │ │ ├── b476f1461388bf4907634009904739e6_is.jpg
│ │ │ │ ├── b4a6228e6810d38e19e491c173af4d5c_m.png
│ │ │ │ ├── b85ddd8aa_xl.jpg
│ │ │ │ ├── badaaf312e59c125928bd1ea2d4b5a51_b.jpg
│ │ │ │ ├── bb73b7fb48b0cb63aa573415dfe4d0c5_m.jpg
│ │ │ │ ├── bc93fd5289c13c06fd569bc4f6df821e_is.jpg
│ │ │ │ ├── be39d110759e68f389b7d2934d7353bc_m.jpg
│ │ │ │ ├── c07f969d8dcc6251ef114fe6b1a9a563_200x112.jpg
│ │ │ │ ├── c28e9af7f_m.jpg
│ │ │ │ ├── c54bb4367803ba590035d2d89d1a84dd_is.jpg
│ │ │ │ ├── c79247853_m.jpg
│ │ │ │ ├── c898060535edfdbe4147d2135c29787f_200x112.jpg
│ │ │ │ ├── c94c92af8_m.jpg
│ │ │ │ ├── cafae465b8ea283498c69ab9757f86ba_xl.jpg
│ │ │ │ ├── captcha.gif
│ │ │ │ ├── cbc5d3c6f333215a1c480cb3b4735b45_m.jpg
│ │ │ │ ├── d207854fffc9e0289fbd6bbbb3986988_s.jpg
│ │ │ │ ├── d6842d77b4bda238e0db09217e3d2f8d_270x225.jpg
│ │ │ │ ├── d822a919d93a761634a67c2022a3f614_m.jpg
│ │ │ │ ├── da8e974dc_is.jpg
│ │ │ │ ├── da8e974dc_m.jpg
│ │ │ │ ├── da8e974dc_s.jpg
│ │ │ │ ├── df4aa616fdcfbd861c010ff71aaef95c_b.jpg
│ │ │ │ ├── e174d6d0c_is.jpg
│ │ │ │ ├── e6f4caaaa_m.jpg
│ │ │ │ ├── e8757728eb70adeb8ebaa0864874c29d_is.jpg
│ │ │ │ ├── ec6bb3fa05625b848ac4d475ecce35c9_is.jpg
│ │ │ │ ├── f1148eb1c7170cabb0a78dad73b590f6_200x112.jpg
│ │ │ │ ├── f99201e42237de4fb7f8d5fbf9a2d270_is.jpg
│ │ │ │ ├── fa70eff301ba417d4a9d3f55d603a29e_s.png
│ │ │ │ ├── facfb45ac94f174655695853d4470bac_200x112.jpg
│ │ │ │ ├── fb05f15bf8bffd1590df442ff6ba7812_200x112.jpg
│ │ │ │ ├── fb6c4dd60a9f19f5fcd8265395e11f9e_200x112.jpg
│ │ │ │ ├── fff25000064308791f739149af611439_is.jpg
│ │ │ │ ├── hour.3d371c99.png
│ │ │ │ ├── nacl.656ec1c4.png
│ │ │ │ ├── nk.png
│ │ │ │ └── weekly.65279d61.png
│ │ ├── scripts
│ │ │ ├── aza-0.1.1.min.js
│ │ │ ├── base.fb262f0e.js
│ │ │ ├── common.fed5411f.js
│ │ │ ├── ga.js
│ │ │ ├── instant.e7a17de6.js
│ │ │ ├── main
│ │ │ │ ├── base
│ │ │ │ │ ├── base.js
│ │ │ │ │ ├── event.js
│ │ │ │ │ └── util.js
│ │ │ │ ├── component
│ │ │ │ │ ├── component.js
│ │ │ │ │ ├── popup.js
│ │ │ │ │ ├── popupAdd.js
│ │ │ │ │ └── popupMsg.js
│ │ │ │ ├── jquery.js
│ │ │ │ ├── site
│ │ │ │ │ ├── detail.js
│ │ │ │ │ ├── follow.js
│ │ │ │ │ ├── home.js
│ │ │ │ │ └── profile.js
│ │ │ │ └── util
│ │ │ │ │ ├── action.js
│ │ │ │ │ └── business.js
│ │ │ ├── page-index.d7b54ac7.js
│ │ │ ├── page-main.5d4c554d.js
│ │ │ ├── richtexteditor.aa0a4005.js
│ │ │ ├── vendor.ff76fbae.js
│ │ │ └── za-0.1.1.min.js
│ │ └── styles
│ │ │ ├── bootstrap.min.css
│ │ │ ├── detail.css
│ │ │ ├── index.css
│ │ │ ├── letter.css
│ │ │ ├── login.css
│ │ │ └── result.css
│ │ ├── templates
│ │ ├── detail.html
│ │ ├── error.html
│ │ ├── feeds.html
│ │ ├── followees.html
│ │ ├── followers.html
│ │ ├── footer.html
│ │ ├── header.html
│ │ ├── home.html
│ │ ├── index.html
│ │ ├── js.html
│ │ ├── letter.html
│ │ ├── letterDetail.html
│ │ ├── login.html
│ │ ├── mails
│ │ │ └── login_exception.html
│ │ ├── profile.html
│ │ └── result.html
│ │ └── toolbox.xml
└── test
│ ├── java
│ └── com
│ │ └── nowcoder
│ │ ├── InitDatabaseTests.java
│ │ ├── ThreadTest.java
│ │ └── WendaApplicationTests.java
│ └── resources
│ └── init-schema.sql
├── target
├── classes
│ ├── SensitiveWords.txt
│ ├── application.properties
│ ├── com
│ │ └── nowcoder
│ │ │ ├── WendaApplication.class
│ │ │ ├── aspect
│ │ │ └── LogAspect.class
│ │ │ ├── async
│ │ │ ├── EventConsumer$1.class
│ │ │ ├── EventConsumer.class
│ │ │ ├── EventHandler.class
│ │ │ ├── EventModel.class
│ │ │ ├── EventProducer.class
│ │ │ ├── EventType.class
│ │ │ └── handler
│ │ │ │ ├── FeedHandler.class
│ │ │ │ ├── FollowHandler.class
│ │ │ │ ├── LikeHandler.class
│ │ │ │ └── LoginExceptionHandler.class
│ │ │ ├── configuration
│ │ │ └── WendaWebConfiguration.class
│ │ │ ├── controller
│ │ │ ├── CommentController.class
│ │ │ ├── FeedController.class
│ │ │ ├── FollowController.class
│ │ │ ├── HomeController.class
│ │ │ ├── IndexController.class
│ │ │ ├── LikeController.class
│ │ │ ├── LoginController.class
│ │ │ ├── MessageController.class
│ │ │ ├── QuestionController.class
│ │ │ └── SettingController.class
│ │ │ ├── dao
│ │ │ ├── CommentDAO.class
│ │ │ ├── FeedDAO.class
│ │ │ ├── FeedDAO.xml
│ │ │ ├── LoginTicketDAO.class
│ │ │ ├── MessageDAO.class
│ │ │ ├── QuestionDAO.class
│ │ │ ├── QuestionDAO.xml
│ │ │ └── UserDAO.class
│ │ │ ├── interceptor
│ │ │ ├── LoginRequredInterceptor.class
│ │ │ └── PassportInterceptor.class
│ │ │ ├── model
│ │ │ ├── Comment.class
│ │ │ ├── EntityType.class
│ │ │ ├── Feed.class
│ │ │ ├── HostHolder.class
│ │ │ ├── LoginTicket.class
│ │ │ ├── Message.class
│ │ │ ├── Question.class
│ │ │ ├── User.class
│ │ │ └── ViewObject.class
│ │ │ ├── service
│ │ │ ├── CommentService.class
│ │ │ ├── FeedService.class
│ │ │ ├── FollowService.class
│ │ │ ├── LikeService.class
│ │ │ ├── LoginTicketService.class
│ │ │ ├── MessageService.class
│ │ │ ├── QuestionService.class
│ │ │ ├── SensitiveService$1.class
│ │ │ ├── SensitiveService$TireNode.class
│ │ │ ├── SensitiveService.class
│ │ │ ├── UserService.class
│ │ │ └── WendaService.class
│ │ │ └── util
│ │ │ ├── JedisAdapter.class
│ │ │ ├── MailSender.class
│ │ │ ├── RedisKeyUtil.class
│ │ │ └── WendaUtil.class
│ ├── mybatis-config.xml
│ ├── static
│ │ ├── images
│ │ │ ├── img
│ │ │ │ ├── spinner2.8f60205d.gif
│ │ │ │ ├── sprites-1.9.2.4c54885a.png
│ │ │ │ ├── sprites-1.9.2@2x.6e638473.png
│ │ │ │ ├── sprites.auto.915a539c.png
│ │ │ │ └── sprites@2x.auto.dd5c79c1.png
│ │ │ └── res
│ │ │ │ ├── 070a9fb26_is.jpg
│ │ │ │ ├── 0b856ef58f76b7c83a0e130f6ef71281_200x112.jpg
│ │ │ │ ├── 0ba3da3f03ced7a438118b0be77df56c_m.jpg
│ │ │ │ ├── 0c6a39621ab1d456b1e6e492d0becc0c_s.jpg
│ │ │ │ ├── 0cf21546298ad1ed3cb64be61d822c27_m.jpg
│ │ │ │ ├── 0cffb89d0b0bd4e726ae54b212a31c3b_200x112.jpg
│ │ │ │ ├── 102799979_m.jpg
│ │ │ │ ├── 10a4cd7fb082375332be33eadfd14c58_is.jpg
│ │ │ │ ├── 11ba31c8bb5473a44b7690eff24b9123_is.jpg
│ │ │ │ ├── 11be4a90ed938abfbab4899df56ee754_s.png
│ │ │ │ ├── 12a8e1ce5ad8060fddb93ae2df98028b_m.jpg
│ │ │ │ ├── 19456ebfe8b207320735f282769ac635_s.jpg
│ │ │ │ ├── 1ac7840eeb19ada0bbf85f51702d5784_s.jpg
│ │ │ │ ├── 1ce495b02_m.jpg
│ │ │ │ ├── 23cace5cf60f39dbc095bd7a12b2cfad_200x112.jpg
│ │ │ │ ├── 24ce38dd5fc2a0c4e0525e577eef7d64_s.png
│ │ │ │ ├── 272627e471a533f58f319a9e600e0a94_is.png
│ │ │ │ ├── 2e21e58a990f5c756e813a64a4bba14c_m.jpg
│ │ │ │ ├── 31826765d442d8222a05cd67d0643a25_270x225.png
│ │ │ │ ├── 33fb6f51a3f4e16b6e89172040451dca_b.png
│ │ │ │ ├── 3b673d6335ef6788d1659ee2b6381e97_m.jpg
│ │ │ │ ├── 41d652d947a489e056b0179ba137294b_m.png
│ │ │ │ ├── 450c9d9f5240f05f73d21fe3ae76f1a6_200x112.jpg
│ │ │ │ ├── 4528283ed249589634546327431667bf_is.jpg
│ │ │ │ ├── 4d104b6c6a08f7e1a48f4f32c88b1ce2_m.jpg
│ │ │ │ ├── 51559bbebaa7fd395c271b7b1c8b9f26_m.jpg
│ │ │ │ ├── 558b3e3d8be209247159ba4f83ab1c02_200x112.jpg
│ │ │ │ ├── 6088e39f2_is.jpg
│ │ │ │ ├── 66a689b2c60557eae79d839aaedf48b0_200x112.png
│ │ │ │ ├── 6c76223a5aef2f1d29c680a2524de791_is.jpg
│ │ │ │ ├── 6ceea810748d179f57cac0baa5cf9592_s.jpg
│ │ │ │ ├── 6cfbfc0c5e3c5ecd8784f7e733a75b4f_m.jpg
│ │ │ │ ├── 6fd46860a4b6cbc1e52d676f217ea9fd_is.jpg
│ │ │ │ ├── 7412830858217e93f6c5d06f6328cbd5_200x112.png
│ │ │ │ ├── 7986ef6045f2cef8352be5affce5f7d1_is.jpg
│ │ │ │ ├── 837b60aa36029a2309974e74de3b62e9_xl.png
│ │ │ │ ├── 845303838eca4a5b5f03cc3ca994ec28_s.png
│ │ │ │ ├── 845c492813e72b85c6e11cccf8ed0ff8_m.jpg
│ │ │ │ ├── 935f87219_m.jpg
│ │ │ │ ├── 975baaf73fd76f48ce6f05e19b176878_xl.jpg
│ │ │ │ ├── 9cfe980ca44e38bd9b0e5c3dee5b0f3e_270x225.jpg
│ │ │ │ ├── 9ec0168d1b210d9b8f089e16f521b82b_200x112.jpg
│ │ │ │ ├── a3f80f6a6_m.jpg
│ │ │ │ ├── a4df63114bd9374a73775e30db1cdd36_is.jpg
│ │ │ │ ├── a57fdaff90865eaaef2e87051624862b_m.jpg
│ │ │ │ ├── aa49b7ceff22ea68ca5f747115cd17af_200x112.jpg
│ │ │ │ ├── aadd7b895_m.jpg
│ │ │ │ ├── aadd7b895_s.jpg
│ │ │ │ ├── actioncard-suggested-avatar.c5af416d.png
│ │ │ │ ├── actioncard-validation@2x.65147043.png
│ │ │ │ ├── b144d91ec_m.jpg
│ │ │ │ ├── b3aadf89405941b05a5ce00fb06f8281_m.jpg
│ │ │ │ ├── b476f1461388bf4907634009904739e6_is.jpg
│ │ │ │ ├── b4a6228e6810d38e19e491c173af4d5c_m.png
│ │ │ │ ├── b85ddd8aa_xl.jpg
│ │ │ │ ├── badaaf312e59c125928bd1ea2d4b5a51_b.jpg
│ │ │ │ ├── bb73b7fb48b0cb63aa573415dfe4d0c5_m.jpg
│ │ │ │ ├── bc93fd5289c13c06fd569bc4f6df821e_is.jpg
│ │ │ │ ├── be39d110759e68f389b7d2934d7353bc_m.jpg
│ │ │ │ ├── c07f969d8dcc6251ef114fe6b1a9a563_200x112.jpg
│ │ │ │ ├── c28e9af7f_m.jpg
│ │ │ │ ├── c54bb4367803ba590035d2d89d1a84dd_is.jpg
│ │ │ │ ├── c79247853_m.jpg
│ │ │ │ ├── c898060535edfdbe4147d2135c29787f_200x112.jpg
│ │ │ │ ├── c94c92af8_m.jpg
│ │ │ │ ├── cafae465b8ea283498c69ab9757f86ba_xl.jpg
│ │ │ │ ├── captcha.gif
│ │ │ │ ├── cbc5d3c6f333215a1c480cb3b4735b45_m.jpg
│ │ │ │ ├── d207854fffc9e0289fbd6bbbb3986988_s.jpg
│ │ │ │ ├── d6842d77b4bda238e0db09217e3d2f8d_270x225.jpg
│ │ │ │ ├── d822a919d93a761634a67c2022a3f614_m.jpg
│ │ │ │ ├── da8e974dc_is.jpg
│ │ │ │ ├── da8e974dc_m.jpg
│ │ │ │ ├── da8e974dc_s.jpg
│ │ │ │ ├── df4aa616fdcfbd861c010ff71aaef95c_b.jpg
│ │ │ │ ├── e174d6d0c_is.jpg
│ │ │ │ ├── e6f4caaaa_m.jpg
│ │ │ │ ├── e8757728eb70adeb8ebaa0864874c29d_is.jpg
│ │ │ │ ├── ec6bb3fa05625b848ac4d475ecce35c9_is.jpg
│ │ │ │ ├── f1148eb1c7170cabb0a78dad73b590f6_200x112.jpg
│ │ │ │ ├── f99201e42237de4fb7f8d5fbf9a2d270_is.jpg
│ │ │ │ ├── fa70eff301ba417d4a9d3f55d603a29e_s.png
│ │ │ │ ├── facfb45ac94f174655695853d4470bac_200x112.jpg
│ │ │ │ ├── fb05f15bf8bffd1590df442ff6ba7812_200x112.jpg
│ │ │ │ ├── fb6c4dd60a9f19f5fcd8265395e11f9e_200x112.jpg
│ │ │ │ ├── fff25000064308791f739149af611439_is.jpg
│ │ │ │ ├── hour.3d371c99.png
│ │ │ │ ├── nacl.656ec1c4.png
│ │ │ │ ├── nk.png
│ │ │ │ └── weekly.65279d61.png
│ │ ├── scripts
│ │ │ ├── aza-0.1.1.min.js
│ │ │ ├── base.fb262f0e.js
│ │ │ ├── common.fed5411f.js
│ │ │ ├── ga.js
│ │ │ ├── instant.e7a17de6.js
│ │ │ ├── main
│ │ │ │ ├── base
│ │ │ │ │ ├── base.js
│ │ │ │ │ ├── event.js
│ │ │ │ │ └── util.js
│ │ │ │ ├── component
│ │ │ │ │ ├── component.js
│ │ │ │ │ ├── popup.js
│ │ │ │ │ ├── popupAdd.js
│ │ │ │ │ └── popupMsg.js
│ │ │ │ ├── jquery.js
│ │ │ │ ├── site
│ │ │ │ │ ├── detail.js
│ │ │ │ │ ├── follow.js
│ │ │ │ │ ├── home.js
│ │ │ │ │ └── profile.js
│ │ │ │ └── util
│ │ │ │ │ ├── action.js
│ │ │ │ │ └── business.js
│ │ │ ├── page-index.d7b54ac7.js
│ │ │ ├── page-main.5d4c554d.js
│ │ │ ├── richtexteditor.aa0a4005.js
│ │ │ ├── vendor.ff76fbae.js
│ │ │ └── za-0.1.1.min.js
│ │ └── styles
│ │ │ ├── bootstrap.min.css
│ │ │ ├── detail.css
│ │ │ ├── index.css
│ │ │ ├── letter.css
│ │ │ ├── login.css
│ │ │ └── result.css
│ ├── templates
│ │ ├── detail.html
│ │ ├── error.html
│ │ ├── feeds.html
│ │ ├── followees.html
│ │ ├── followers.html
│ │ ├── footer.html
│ │ ├── header.html
│ │ ├── home.html
│ │ ├── index.html
│ │ ├── js.html
│ │ ├── letter.html
│ │ ├── letterDetail.html
│ │ ├── login.html
│ │ ├── mails
│ │ │ └── login_exception.html
│ │ ├── profile.html
│ │ └── result.html
│ └── toolbox.xml
└── test-classes
│ ├── com
│ └── nowcoder
│ │ ├── Consumer.class
│ │ ├── InitDatabaseTests.class
│ │ ├── Producer.class
│ │ ├── ThreadTest$1.class
│ │ ├── ThreadTest$2.class
│ │ ├── ThreadTest$3.class
│ │ ├── ThreadTest.class
│ │ └── WendaApplicationTests.class
│ └── init-schema.sql
└── wenda.iml
/img/vm.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hzcforever/nowcoder-project/aaf6d36983d7cf4525cd8def7039fd6ffd6bb345/img/vm.png
--------------------------------------------------------------------------------
/img/wenda1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hzcforever/nowcoder-project/aaf6d36983d7cf4525cd8def7039fd6ffd6bb345/img/wenda1.png
--------------------------------------------------------------------------------
/img/wenda2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hzcforever/nowcoder-project/aaf6d36983d7cf4525cd8def7039fd6ffd6bb345/img/wenda2.png
--------------------------------------------------------------------------------
/img/wenda3.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hzcforever/nowcoder-project/aaf6d36983d7cf4525cd8def7039fd6ffd6bb345/img/wenda3.png
--------------------------------------------------------------------------------
/img/wenda4.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hzcforever/nowcoder-project/aaf6d36983d7cf4525cd8def7039fd6ffd6bb345/img/wenda4.png
--------------------------------------------------------------------------------
/img/wenda5.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hzcforever/nowcoder-project/aaf6d36983d7cf4525cd8def7039fd6ffd6bb345/img/wenda5.png
--------------------------------------------------------------------------------
/img/xshell.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hzcforever/nowcoder-project/aaf6d36983d7cf4525cd8def7039fd6ffd6bb345/img/xshell.png
--------------------------------------------------------------------------------
/wenda/.idea/compiler.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
--------------------------------------------------------------------------------
/wenda/.idea/encodings.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
--------------------------------------------------------------------------------
/wenda/.idea/inspectionProfiles/Project_Default.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
--------------------------------------------------------------------------------
/wenda/.idea/libraries/Maven__antlr_antlr_2_7_7.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/wenda/.idea/libraries/Maven__aopalliance_aopalliance_1_0.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/wenda/.idea/libraries/Maven__ch_qos_logback_logback_classic_1_1_7.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/wenda/.idea/libraries/Maven__ch_qos_logback_logback_core_1_1_7.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/wenda/.idea/libraries/Maven__com_alibaba_fastjson_1_2_13.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/wenda/.idea/libraries/Maven__com_fasterxml_classmate_1_1_0.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/wenda/.idea/libraries/Maven__com_fasterxml_jackson_core_jackson_annotations_2_6_7.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/wenda/.idea/libraries/Maven__com_fasterxml_jackson_core_jackson_core_2_6_7.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/wenda/.idea/libraries/Maven__com_fasterxml_jackson_core_jackson_databind_2_6_7.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/wenda/.idea/libraries/Maven__com_google_protobuf_protobuf_java_2_6_0.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/wenda/.idea/libraries/Maven__commons_beanutils_commons_beanutils_1_9_2.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/wenda/.idea/libraries/Maven__commons_chain_commons_chain_1_1.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/wenda/.idea/libraries/Maven__commons_collections_commons_collections_3_2_2.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/wenda/.idea/libraries/Maven__commons_digester_commons_digester_2_1.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/wenda/.idea/libraries/Maven__commons_lang_commons_lang_2_4.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/wenda/.idea/libraries/Maven__commons_validator_commons_validator_1_3_1.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/wenda/.idea/libraries/Maven__dom4j_dom4j_1_1.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/wenda/.idea/libraries/Maven__javax_activation_activation_1_1.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/wenda/.idea/libraries/Maven__javax_mail_mail_1_4_7.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/wenda/.idea/libraries/Maven__javax_validation_validation_api_1_1_0_Final.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/wenda/.idea/libraries/Maven__junit_junit_4_12.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/wenda/.idea/libraries/Maven__mysql_mysql_connector_java_8_0_12.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/wenda/.idea/libraries/Maven__org_apache_commons_commons_pool2_2_4_2.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/wenda/.idea/libraries/Maven__org_apache_struts_struts_core_1_3_8.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/wenda/.idea/libraries/Maven__org_apache_struts_struts_taglib_1_3_8.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/wenda/.idea/libraries/Maven__org_apache_struts_struts_tiles_1_3_8.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/wenda/.idea/libraries/Maven__org_apache_tomcat_embed_tomcat_embed_core_8_0_36.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/wenda/.idea/libraries/Maven__org_apache_tomcat_embed_tomcat_embed_el_8_0_36.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/wenda/.idea/libraries/Maven__org_apache_tomcat_embed_tomcat_embed_logging_juli_8_0_36.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/wenda/.idea/libraries/Maven__org_apache_tomcat_embed_tomcat_embed_websocket_8_0_36.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/wenda/.idea/libraries/Maven__org_apache_tomcat_tomcat_jdbc_8_0_36.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/wenda/.idea/libraries/Maven__org_apache_tomcat_tomcat_juli_8_0_36.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/wenda/.idea/libraries/Maven__org_apache_velocity_velocity_1_7.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/wenda/.idea/libraries/Maven__org_apache_velocity_velocity_tools_2_0.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/wenda/.idea/libraries/Maven__org_aspectj_aspectjweaver_1_8_9.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/wenda/.idea/libraries/Maven__org_hamcrest_hamcrest_core_1_3.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/wenda/.idea/libraries/Maven__org_hamcrest_hamcrest_library_1_3.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/wenda/.idea/libraries/Maven__org_hibernate_hibernate_validator_5_2_4_Final.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/wenda/.idea/libraries/Maven__org_jboss_logging_jboss_logging_3_3_0_Final.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/wenda/.idea/libraries/Maven__org_mockito_mockito_core_1_10_19.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/wenda/.idea/libraries/Maven__org_mybatis_mybatis_3_4_0.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/wenda/.idea/libraries/Maven__org_mybatis_mybatis_spring_1_3_0.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/wenda/.idea/libraries/Maven__org_mybatis_spring_boot_mybatis_spring_boot_autoconfigure_1_1_1.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/wenda/.idea/libraries/Maven__org_mybatis_spring_boot_mybatis_spring_boot_starter_1_1_1.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/wenda/.idea/libraries/Maven__org_objenesis_objenesis_2_1.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/wenda/.idea/libraries/Maven__org_slf4j_jcl_over_slf4j_1_7_21.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/wenda/.idea/libraries/Maven__org_slf4j_jul_to_slf4j_1_7_21.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/wenda/.idea/libraries/Maven__org_slf4j_log4j_over_slf4j_1_7_21.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/wenda/.idea/libraries/Maven__org_slf4j_slf4j_api_1_7_21.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/wenda/.idea/libraries/Maven__org_springframework_boot_spring_boot_1_3_6_RELEASE.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/wenda/.idea/libraries/Maven__org_springframework_boot_spring_boot_autoconfigure_1_3_6_RELEASE.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/wenda/.idea/libraries/Maven__org_springframework_boot_spring_boot_devtools_1_3_6_RELEASE.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/wenda/.idea/libraries/Maven__org_springframework_boot_spring_boot_starter_1_3_6_RELEASE.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/wenda/.idea/libraries/Maven__org_springframework_boot_spring_boot_starter_aop_1_3_6_RELEASE.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/wenda/.idea/libraries/Maven__org_springframework_boot_spring_boot_starter_jdbc_1_3_6_RELEASE.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/wenda/.idea/libraries/Maven__org_springframework_boot_spring_boot_starter_logging_1_3_6_RELEASE.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/wenda/.idea/libraries/Maven__org_springframework_boot_spring_boot_starter_test_1_3_6_RELEASE.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/wenda/.idea/libraries/Maven__org_springframework_boot_spring_boot_starter_tomcat_1_3_6_RELEASE.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/wenda/.idea/libraries/Maven__org_springframework_boot_spring_boot_starter_validation_1_3_6_RELEASE.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/wenda/.idea/libraries/Maven__org_springframework_boot_spring_boot_starter_velocity_1_3_6_RELEASE.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/wenda/.idea/libraries/Maven__org_springframework_boot_spring_boot_starter_web_1_3_6_RELEASE.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/wenda/.idea/libraries/Maven__org_springframework_spring_aop_4_2_7_RELEASE.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/wenda/.idea/libraries/Maven__org_springframework_spring_beans_4_2_7_RELEASE.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/wenda/.idea/libraries/Maven__org_springframework_spring_context_4_2_7_RELEASE.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/wenda/.idea/libraries/Maven__org_springframework_spring_context_support_4_2_7_RELEASE.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/wenda/.idea/libraries/Maven__org_springframework_spring_core_4_2_7_RELEASE.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/wenda/.idea/libraries/Maven__org_springframework_spring_expression_4_2_7_RELEASE.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/wenda/.idea/libraries/Maven__org_springframework_spring_jdbc_4_2_7_RELEASE.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/wenda/.idea/libraries/Maven__org_springframework_spring_test_4_2_7_RELEASE.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/wenda/.idea/libraries/Maven__org_springframework_spring_tx_4_2_7_RELEASE.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/wenda/.idea/libraries/Maven__org_springframework_spring_web_4_2_7_RELEASE.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/wenda/.idea/libraries/Maven__org_springframework_spring_webmvc_4_2_7_RELEASE.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/wenda/.idea/libraries/Maven__org_yaml_snakeyaml_1_16.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/wenda/.idea/libraries/Maven__oro_oro_2_0_8.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/wenda/.idea/libraries/Maven__redis_clients_jedis_2_9_0.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/wenda/.idea/libraries/Maven__sslext_sslext_1_2_0.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/wenda/.idea/misc.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/wenda/.idea/modules.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
--------------------------------------------------------------------------------
/wenda/.mvn/wrapper/maven-wrapper.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hzcforever/nowcoder-project/aaf6d36983d7cf4525cd8def7039fd6ffd6bb345/wenda/.mvn/wrapper/maven-wrapper.jar
--------------------------------------------------------------------------------
/wenda/.mvn/wrapper/maven-wrapper.properties:
--------------------------------------------------------------------------------
1 | distributionUrl=https://repo1.maven.org/maven2/org/apache/maven/apache-maven/3.3.9/apache-maven-3.3.9-bin.zip
2 |
--------------------------------------------------------------------------------
/wenda/pyspider/conf.json:
--------------------------------------------------------------------------------
1 | {
2 | "message_queue":"redis://127.0.0.1:6379/0",
3 | "webui":{
4 | "port":5001,
5 | "need-auth":true,
6 | "username":"root",
7 | "password":"150000"
8 | }
9 | }
--------------------------------------------------------------------------------
/wenda/pyspider/data/project.db:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hzcforever/nowcoder-project/aaf6d36983d7cf4525cd8def7039fd6ffd6bb345/wenda/pyspider/data/project.db
--------------------------------------------------------------------------------
/wenda/pyspider/data/result.db:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hzcforever/nowcoder-project/aaf6d36983d7cf4525cd8def7039fd6ffd6bb345/wenda/pyspider/data/result.db
--------------------------------------------------------------------------------
/wenda/pyspider/data/scheduler.1d:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hzcforever/nowcoder-project/aaf6d36983d7cf4525cd8def7039fd6ffd6bb345/wenda/pyspider/data/scheduler.1d
--------------------------------------------------------------------------------
/wenda/pyspider/data/scheduler.1h:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hzcforever/nowcoder-project/aaf6d36983d7cf4525cd8def7039fd6ffd6bb345/wenda/pyspider/data/scheduler.1h
--------------------------------------------------------------------------------
/wenda/pyspider/data/scheduler.all:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hzcforever/nowcoder-project/aaf6d36983d7cf4525cd8def7039fd6ffd6bb345/wenda/pyspider/data/scheduler.all
--------------------------------------------------------------------------------
/wenda/pyspider/data/task.db:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hzcforever/nowcoder-project/aaf6d36983d7cf4525cd8def7039fd6ffd6bb345/wenda/pyspider/data/task.db
--------------------------------------------------------------------------------
/wenda/src/main/java/com/nowcoder/WendaApplication.java:
--------------------------------------------------------------------------------
1 | package com.nowcoder;
2 |
3 | import com.nowcoder.model.User;
4 | import org.springframework.boot.SpringApplication;
5 | import org.springframework.boot.autoconfigure.SpringBootApplication;
6 |
7 | @SpringBootApplication
8 | public class WendaApplication {
9 |
10 | public static void main(String[] args) {
11 | SpringApplication.run(WendaApplication.class, args);
12 | }
13 | }
14 |
--------------------------------------------------------------------------------
/wenda/src/main/java/com/nowcoder/aspect/LogAspect.java:
--------------------------------------------------------------------------------
1 | package com.nowcoder.aspect;
2 |
3 | import org.aspectj.lang.JoinPoint;
4 | import org.aspectj.lang.annotation.After;
5 | import org.aspectj.lang.annotation.Aspect;
6 | import org.aspectj.lang.annotation.Before;
7 | import org.slf4j.Logger;
8 | import org.slf4j.LoggerFactory;
9 | import org.springframework.stereotype.Component;
10 |
11 | import java.util.Date;
12 |
13 | @Aspect
14 | @Component
15 | public class LogAspect {
16 | private static final Logger logger = LoggerFactory.getLogger(LogAspect.class);
17 |
18 | @Before("execution(* com.nowcoder.controller.*Controller.*(..))")
19 | public void beforeMethod(JoinPoint joinPoint) {
20 | StringBuilder sb = new StringBuilder();
21 | for (Object arg : joinPoint.getArgs()) {
22 | sb.append("arg:" + arg.toString() + "|");
23 | }
24 | logger.info("before method:" + sb.toString());
25 | }
26 |
27 | @After("execution(* com.nowcoder.controller.IndexController.*(..))")
28 | public void afterMethod() {
29 | logger.info("after method" + new Date());
30 | }
31 | }
32 |
--------------------------------------------------------------------------------
/wenda/src/main/java/com/nowcoder/async/EventHandler.java:
--------------------------------------------------------------------------------
1 | package com.nowcoder.async;
2 |
3 | import java.util.List;
4 |
5 | public interface EventHandler {
6 | void doHandler(EventModel model);
7 | List getSupportEventTypes();
8 | }
9 |
--------------------------------------------------------------------------------
/wenda/src/main/java/com/nowcoder/async/EventProducer.java:
--------------------------------------------------------------------------------
1 | package com.nowcoder.async;
2 |
3 | import com.alibaba.fastjson.JSONObject;
4 | import com.nowcoder.util.JedisAdapter;
5 | import com.nowcoder.util.RedisKeyUtil;
6 | import org.springframework.beans.factory.annotation.Autowired;
7 | import org.springframework.stereotype.Service;
8 |
9 | @Service
10 | public class EventProducer {
11 |
12 | @Autowired
13 | JedisAdapter jedisAdapter;
14 |
15 | public boolean fireEvent(EventModel eventModel) {
16 | try {
17 | String json = JSONObject.toJSONString(eventModel);
18 | String key = RedisKeyUtil.getEventQueueKey();
19 | jedisAdapter.lpush(key, json);
20 | return true;
21 | } catch (Exception e) {
22 | return false;
23 | }
24 | }
25 | }
26 |
--------------------------------------------------------------------------------
/wenda/src/main/java/com/nowcoder/async/EventType.java:
--------------------------------------------------------------------------------
1 | package com.nowcoder.async;
2 |
3 | public enum EventType {
4 | LIKE(0),
5 | COMMENT(1),
6 | LOGIN(2),
7 | MAIL(3),
8 | FOLLOW(4),
9 | UNFOLLOW(5);
10 |
11 | private int value;
12 | EventType(int value) {
13 | this.value = value;
14 | }
15 |
16 | public int getValue() {
17 | return value;
18 | }
19 |
20 | }
21 |
--------------------------------------------------------------------------------
/wenda/src/main/java/com/nowcoder/async/handler/LikeHandler.java:
--------------------------------------------------------------------------------
1 | package com.nowcoder.async.handler;
2 |
3 | import com.nowcoder.async.EventHandler;
4 | import com.nowcoder.async.EventModel;
5 | import com.nowcoder.async.EventType;
6 | import com.nowcoder.model.Message;
7 | import com.nowcoder.model.User;
8 | import com.nowcoder.service.MessageService;
9 | import com.nowcoder.service.UserService;
10 | import com.nowcoder.util.WendaUtil;
11 | import org.springframework.beans.factory.annotation.Autowired;
12 | import org.springframework.stereotype.Component;
13 |
14 | import java.util.Arrays;
15 | import java.util.Date;
16 | import java.util.List;
17 |
18 |
19 | @Component
20 | public class LikeHandler implements EventHandler {
21 |
22 | @Autowired
23 | MessageService messageService;
24 |
25 | @Autowired
26 | UserService userService;
27 |
28 | @Override
29 | public void doHandler(EventModel model) {
30 | Message message = new Message();
31 | message.setFromId(WendaUtil.SYSTEM_USERID);
32 | message.setToId(model.getEntityOwnerId());
33 | message.setCreatedDate(new Date());
34 |
35 | User user = userService.getUser(model.getActorId());
36 | message.setContent("用户" + user.getName() + "赞了你的评论," +
37 | "http://127.0.0.1:8080/question/" + model.getExt("questionId"));
38 | messageService.addMessage(message);
39 | }
40 |
41 | @Override
42 | public List getSupportEventTypes() {
43 | return Arrays.asList(EventType.LIKE);
44 | }
45 | }
46 |
--------------------------------------------------------------------------------
/wenda/src/main/java/com/nowcoder/async/handler/LoginExceptionHandler.java:
--------------------------------------------------------------------------------
1 | package com.nowcoder.async.handler;
2 |
3 | import com.nowcoder.async.EventHandler;
4 | import com.nowcoder.async.EventModel;
5 | import com.nowcoder.async.EventType;
6 | import com.nowcoder.util.MailSender;
7 | import org.springframework.beans.factory.annotation.Autowired;
8 | import org.springframework.stereotype.Component;
9 |
10 | import java.util.Arrays;
11 | import java.util.HashMap;
12 | import java.util.List;
13 | import java.util.Map;
14 |
15 | @Component
16 | public class LoginExceptionHandler implements EventHandler {
17 |
18 | @Autowired
19 | MailSender mailSender;
20 |
21 | @Override
22 | public void doHandler(EventModel model) {
23 | Map map = new HashMap<>();
24 | map.put("username", model.getExt("username"));
25 | mailSender.sendWithHTMLTemplate(model.getExt("email"),
26 | "登录IP异常", "mails/login_exception.html", map);
27 | }
28 |
29 | @Override
30 | public List getSupportEventTypes() {
31 | return Arrays.asList(EventType.LOGIN);
32 | }
33 | }
34 |
--------------------------------------------------------------------------------
/wenda/src/main/java/com/nowcoder/configuration/WendaWebConfiguration.java:
--------------------------------------------------------------------------------
1 | package com.nowcoder.configuration;
2 |
3 | import com.nowcoder.interceptor.LoginRequredInterceptor;
4 | import com.nowcoder.interceptor.PassportInterceptor;
5 | import org.springframework.beans.factory.annotation.Autowired;
6 | import org.springframework.stereotype.Component;
7 | import org.springframework.web.servlet.config.annotation.InterceptorRegistry;
8 | import org.springframework.web.servlet.config.annotation.WebMvcConfigurerAdapter;
9 |
10 | @Component
11 | public class WendaWebConfiguration extends WebMvcConfigurerAdapter {
12 |
13 | @Autowired
14 | PassportInterceptor passportInterceptor;
15 | @Autowired
16 | LoginRequredInterceptor loginRequredInterceptor;
17 |
18 | @Override
19 | public void addInterceptors(InterceptorRegistry registry) {
20 | registry.addInterceptor(passportInterceptor);
21 | registry.addInterceptor(loginRequredInterceptor).addPathPatterns("/user/*"); //放在passportInterceptor之后
22 | super.addInterceptors(registry);
23 | }
24 | }
25 |
--------------------------------------------------------------------------------
/wenda/src/main/java/com/nowcoder/controller/SettingController.java:
--------------------------------------------------------------------------------
1 | package com.nowcoder.controller;
2 |
3 | import com.nowcoder.service.WendaService;
4 | import org.springframework.beans.factory.annotation.Autowired;
5 | import org.springframework.stereotype.Controller;
6 | import org.springframework.web.bind.annotation.RequestMapping;
7 | import org.springframework.web.bind.annotation.RequestMethod;
8 | import org.springframework.web.bind.annotation.ResponseBody;
9 |
10 | import javax.servlet.http.HttpSession;
11 |
12 |
13 | @Controller
14 | public class SettingController {
15 | @Autowired
16 | WendaService wendaService;
17 |
18 | @RequestMapping(path = {"/setting"}, method = {RequestMethod.GET})
19 | @ResponseBody
20 | public String setting(HttpSession httpSession) {
21 | return "Setting OK. " + wendaService.getMessage(1);
22 | }
23 | }
24 |
--------------------------------------------------------------------------------
/wenda/src/main/java/com/nowcoder/dao/FeedDAO.java:
--------------------------------------------------------------------------------
1 | package com.nowcoder.dao;
2 |
3 | import com.nowcoder.model.Feed;
4 | import org.apache.ibatis.annotations.Insert;
5 | import org.apache.ibatis.annotations.Mapper;
6 | import org.apache.ibatis.annotations.Param;
7 | import org.apache.ibatis.annotations.Select;
8 | import org.springframework.stereotype.Service;
9 |
10 | import java.util.List;
11 |
12 | @Service
13 | @Mapper
14 | public interface FeedDAO {
15 | String TABLE_NAME = " feed ";
16 | String INSERT_FIELDS = " user_id, data, created_date, type ";
17 | String SELECT_FIELDS = " id, " + INSERT_FIELDS;
18 |
19 | @Insert({"insert into ", TABLE_NAME, "(", INSERT_FIELDS,
20 | ") values (#{userId},#{data},#{createdDate},#{type})"})
21 | int addFeed(Feed feed);
22 |
23 |
24 | @Select({"select ", SELECT_FIELDS, " from ", TABLE_NAME, " where id=#{id}"})
25 | Feed getFeedById(int id);
26 |
27 | List selectUserFeeds(@Param("maxId") int maxId,
28 | @Param("userIds") List userIds,
29 | @Param("count") int count);
30 |
31 | }
32 |
--------------------------------------------------------------------------------
/wenda/src/main/java/com/nowcoder/dao/LoginTicketDAO.java:
--------------------------------------------------------------------------------
1 | package com.nowcoder.dao;
2 |
3 | import com.nowcoder.model.LoginTicket;
4 | import org.apache.ibatis.annotations.*;
5 | import org.springframework.stereotype.Service;
6 |
7 | @Service
8 | @Mapper
9 | public interface LoginTicketDAO {
10 | String TABLE_NAME = " login_ticket ";
11 | String INSERT_FIELDS = " user_id, expired, status, ticket ";
12 | String SELECT_FIELDS = " id, " + INSERT_FIELDS;
13 |
14 | @Insert({"insert into ", TABLE_NAME, "(", INSERT_FIELDS,
15 | ") values (#{userId},#{expired},#{status},#{ticket})"})
16 | int addTicket(LoginTicket ticket);
17 |
18 | @Select({"select ", SELECT_FIELDS, "from", TABLE_NAME, "where ticket = #{ticket}"})
19 | LoginTicket selectByTicket(String ticket);
20 |
21 | @Update({"update ", TABLE_NAME, "set status = #{status} where ticket = #{ticket}"})
22 | void updateStatus(@Param("ticket") String ticket, @Param("status") int status);
23 | }
24 |
--------------------------------------------------------------------------------
/wenda/src/main/java/com/nowcoder/dao/QuestionDAO.java:
--------------------------------------------------------------------------------
1 | package com.nowcoder.dao;
2 |
3 | import com.nowcoder.model.Question;
4 | import org.apache.ibatis.annotations.*;
5 | import org.springframework.stereotype.Service;
6 |
7 | import java.util.List;
8 |
9 | @Service
10 | @Mapper
11 | public interface QuestionDAO {
12 | String TABLE_NAME = " question ";
13 | String INSERT_FIELDS = " title, content, created_date, user_id, comment_count ";
14 | String SELECT_FIELDS = " id, " + INSERT_FIELDS;
15 |
16 | @Insert({"insert into ", TABLE_NAME, "(", INSERT_FIELDS,
17 | ") values (#{title},#{content},#{createdDate},#{userId},#{commentCount})"})
18 | int addQuestion(Question question);
19 |
20 | @Select({"select ", SELECT_FIELDS, " from", TABLE_NAME, " where id=#{id}"})
21 | Question selectById(int id);
22 |
23 | List selectLatestQuestions(@Param("userId") int userId, @Param("offset") int offset,
24 | @Param("limit") int limit);
25 |
26 | @Update({"update ", TABLE_NAME, " set comment_count=#{commentCount} where id=#{id}"})
27 | int updateCommentCount(@Param("id") int id, @Param("commentCount") int commentCount);
28 |
29 | }
30 |
--------------------------------------------------------------------------------
/wenda/src/main/java/com/nowcoder/dao/UserDAO.java:
--------------------------------------------------------------------------------
1 | package com.nowcoder.dao;
2 |
3 | import com.nowcoder.model.User;
4 | import org.apache.ibatis.annotations.*;
5 | import org.springframework.stereotype.Service;
6 |
7 |
8 | @Service
9 | @Mapper
10 | public interface UserDAO {
11 | // 注意空格
12 | String TABLE_NAME = " user ";
13 | String INSERT_FIELDS = " id, name, password, salt, head_url ";
14 | String SELECT_FIELDS = " id, " + INSERT_FIELDS;
15 |
16 | @Insert({"insert into ", TABLE_NAME, "(", INSERT_FIELDS,
17 | ") values (#{id},#{name},#{password},#{salt},#{headUrl})"})
18 | int addUser(User user);
19 |
20 | @Select({"select ", SELECT_FIELDS, " from ", TABLE_NAME, " where id=#{id}"})
21 | User selectById(int id);
22 |
23 | @Select({"select ", SELECT_FIELDS, " from ", TABLE_NAME, " where name=#{name}"})
24 | User selectByName(String name);
25 |
26 | @Update({"update ", TABLE_NAME, " set password=#{password} where id=#{id}"})
27 | void updatePassword(User user);
28 |
29 | @Delete({"delete from ", TABLE_NAME, " where id=#{id}"})
30 | void deleteById(int id);
31 | }
32 |
--------------------------------------------------------------------------------
/wenda/src/main/java/com/nowcoder/interceptor/LoginRequredInterceptor.java:
--------------------------------------------------------------------------------
1 | package com.nowcoder.interceptor;
2 |
3 | import com.nowcoder.model.HostHolder;
4 | import org.springframework.beans.factory.annotation.Autowired;
5 | import org.springframework.stereotype.Component;
6 | import org.springframework.web.servlet.HandlerInterceptor;
7 | import org.springframework.web.servlet.ModelAndView;
8 |
9 | import javax.servlet.http.HttpServletRequest;
10 | import javax.servlet.http.HttpServletResponse;
11 |
12 | @Component
13 | public class LoginRequredInterceptor implements HandlerInterceptor {
14 |
15 | @Autowired
16 | HostHolder hostHolder;
17 |
18 | @Override
19 | public boolean preHandle(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse, Object o) throws Exception {
20 | if (hostHolder.getUser() == null) {
21 | httpServletResponse.sendRedirect("/relogin?next=" + httpServletRequest.getRequestURI());
22 | }
23 | return true;
24 | }
25 |
26 | @Override
27 | public void postHandle(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse, Object o, ModelAndView modelAndView) throws Exception {
28 |
29 | }
30 |
31 | @Override
32 | public void afterCompletion(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse, Object o, Exception e) throws Exception {
33 |
34 | }
35 | }
36 |
--------------------------------------------------------------------------------
/wenda/src/main/java/com/nowcoder/model/Comment.java:
--------------------------------------------------------------------------------
1 | package com.nowcoder.model;
2 |
3 | import java.util.Date;
4 |
5 | public class Comment {
6 | private int id;
7 | private int userId;
8 | private int entityId;
9 | private int entityType;
10 | private String content;
11 | private Date createdDate;
12 | private int status;
13 |
14 | public int getId() {
15 | return id;
16 | }
17 |
18 | public void setId(int id) {
19 | this.id = id;
20 | }
21 |
22 | public int getUserId() {
23 | return userId;
24 | }
25 |
26 | public void setUserId(int userId) {
27 | this.userId = userId;
28 | }
29 |
30 | public int getEntityId() {
31 | return entityId;
32 | }
33 |
34 | public void setEntityId(int entityId) {
35 | this.entityId = entityId;
36 | }
37 |
38 | public int getEntityType() {
39 | return entityType;
40 | }
41 |
42 | public void setEntityType(int entityType) {
43 | this.entityType = entityType;
44 | }
45 |
46 | public String getContent() {
47 | return content;
48 | }
49 |
50 | public void setContent(String content) {
51 | this.content = content;
52 | }
53 |
54 | public Date getCreatedDate() {
55 | return createdDate;
56 | }
57 |
58 | public void setCreatedDate(Date createdDate) {
59 | this.createdDate = createdDate;
60 | }
61 |
62 | public int getStatus() {
63 | return status;
64 | }
65 |
66 | public void setStatus(int status) {
67 | this.status = status;
68 | }
69 | }
70 |
--------------------------------------------------------------------------------
/wenda/src/main/java/com/nowcoder/model/EntityType.java:
--------------------------------------------------------------------------------
1 | package com.nowcoder.model;
2 |
3 | public class EntityType {
4 | public static int ENTITY_QUESTION = 1;
5 | public static int ENTITY_COMMENT = 2;
6 | public static int ENTITY_USER = 3;
7 | }
8 |
--------------------------------------------------------------------------------
/wenda/src/main/java/com/nowcoder/model/Feed.java:
--------------------------------------------------------------------------------
1 | package com.nowcoder.model;
2 |
3 | import com.alibaba.fastjson.JSONObject;
4 |
5 | import java.util.Date;
6 |
7 | public class Feed {
8 | private int id;
9 | private int type;
10 | private int userId;
11 | private Date createdDate;
12 | private String data;
13 | private JSONObject dataJSON = null;
14 |
15 | public int getId() {
16 | return id;
17 | }
18 |
19 | public void setId(int id) {
20 | this.id = id;
21 | }
22 |
23 | public int getType() {
24 | return type;
25 | }
26 |
27 | public void setType(int type) {
28 | this.type = type;
29 | }
30 |
31 | public int getUserId() {
32 | return userId;
33 | }
34 |
35 | public void setUserId(int userId) {
36 | this.userId = userId;
37 | }
38 |
39 | public Date getCreatedDate() {
40 | return createdDate;
41 | }
42 |
43 | public void setCreatedDate(Date createdDate) {
44 | this.createdDate = createdDate;
45 | }
46 |
47 | public String getData() {
48 | return data;
49 | }
50 |
51 | public void setData(String data) {
52 | this.data = data;
53 | dataJSON = JSONObject.parseObject(data);
54 | }
55 |
56 | public String get(String key) {
57 | return dataJSON == null ? null : dataJSON.getString(key);
58 | }
59 | }
60 |
--------------------------------------------------------------------------------
/wenda/src/main/java/com/nowcoder/model/HostHolder.java:
--------------------------------------------------------------------------------
1 | package com.nowcoder.model;
2 |
3 | import org.springframework.stereotype.Component;
4 |
5 | @Component
6 | public class HostHolder {
7 | //为每一个线程都分配了一个对象
8 | private static ThreadLocal users = new ThreadLocal<>();
9 | public User getUser() {
10 | return users.get();
11 | }
12 | public void setUser(User user) {
13 | users.set(user);
14 | }
15 | public void clear() {
16 | users.remove();
17 | }
18 |
19 | }
20 |
--------------------------------------------------------------------------------
/wenda/src/main/java/com/nowcoder/model/LoginTicket.java:
--------------------------------------------------------------------------------
1 | package com.nowcoder.model;
2 |
3 | import java.util.Date;
4 |
5 | public class LoginTicket {
6 | private int id;
7 | private int userId;
8 | private Date expired;
9 | private int status;
10 | private String ticket;
11 |
12 | public int getId() {
13 | return id;
14 | }
15 |
16 | public void setId(int id) {
17 | this.id = id;
18 | }
19 |
20 | public int getUserId() {
21 | return userId;
22 | }
23 |
24 | public void setUserId(int userId) {
25 | this.userId = userId;
26 | }
27 |
28 | public Date getExpired() {
29 | return expired;
30 | }
31 |
32 | public void setExpired(Date expired) {
33 | this.expired = expired;
34 | }
35 |
36 | public int getStatus() {
37 | return status;
38 | }
39 |
40 | public void setStatus(int status) {
41 | this.status = status;
42 | }
43 |
44 | public String getTicket() {
45 | return ticket;
46 | }
47 |
48 | public void setTicket(String ticket) {
49 | this.ticket = ticket;
50 | }
51 | }
52 |
--------------------------------------------------------------------------------
/wenda/src/main/java/com/nowcoder/model/Question.java:
--------------------------------------------------------------------------------
1 | package com.nowcoder.model;
2 |
3 | import java.util.Date;
4 |
5 | public class Question {
6 | private int id;
7 | private String title;
8 | private String content;
9 | private Date createdDate;
10 | private int userId;
11 | private int commentCount;
12 |
13 | public int getId() {
14 | return id;
15 | }
16 |
17 | public void setId(int id) {
18 | this.id = id;
19 | }
20 |
21 | public String getTitle() {
22 | return title;
23 | }
24 |
25 | public void setTitle(String title) {
26 | this.title = title;
27 | }
28 |
29 | public String getContent() {
30 | return content;
31 | }
32 |
33 | public void setContent(String content) {
34 | this.content = content;
35 | }
36 |
37 | public Date getCreatedDate() {
38 | return createdDate;
39 | }
40 |
41 | public void setCreatedDate(Date createdDate) {
42 | this.createdDate = createdDate;
43 | }
44 |
45 | public int getUserId() {
46 | return userId;
47 | }
48 |
49 | public void setUserId(int userId) {
50 | this.userId = userId;
51 | }
52 |
53 | public int getCommentCount() {
54 | return commentCount;
55 | }
56 |
57 | public void setCommentCount(int commentCount) {
58 | this.commentCount = commentCount;
59 | }
60 | }
61 |
--------------------------------------------------------------------------------
/wenda/src/main/java/com/nowcoder/model/User.java:
--------------------------------------------------------------------------------
1 | package com.nowcoder.model;
2 |
3 | public class User {
4 | private int id;
5 | private String name;
6 | private String password;
7 | private String salt;
8 | private String headUrl;
9 |
10 | public User() {
11 |
12 | }
13 | public User(String name) {
14 | this.name = name;
15 | this.password = "";
16 | this.salt = "";
17 | this.headUrl = "";
18 | }
19 |
20 | public String getName() {
21 | return name;
22 | }
23 |
24 | public void setName(String name) {
25 | this.name = name;
26 | }
27 |
28 | public String getPassword() {
29 | return password;
30 | }
31 |
32 | public void setPassword(String password) {
33 | this.password = password;
34 | }
35 |
36 | public String getSalt() {
37 | return salt;
38 | }
39 |
40 | public void setSalt(String salt) {
41 | this.salt = salt;
42 | }
43 |
44 | public String getHeadUrl() {
45 | return headUrl;
46 | }
47 |
48 | public void setHeadUrl(String headUrl) {
49 | this.headUrl = headUrl;
50 | }
51 |
52 | public int getId() {
53 | return id;
54 | }
55 |
56 | public void setId(int id) {
57 | this.id = id;
58 | }
59 | }
60 |
--------------------------------------------------------------------------------
/wenda/src/main/java/com/nowcoder/model/ViewObject.java:
--------------------------------------------------------------------------------
1 | package com.nowcoder.model;
2 |
3 | import java.util.HashMap;
4 | import java.util.Map;
5 |
6 | public class ViewObject {
7 | private Map objs = new HashMap();
8 | public void set(String key, Object value) {
9 | objs.put(key, value);
10 | }
11 |
12 | public Object get(String key) {
13 | return objs.get(key);
14 | }
15 | }
16 |
--------------------------------------------------------------------------------
/wenda/src/main/java/com/nowcoder/service/CommentService.java:
--------------------------------------------------------------------------------
1 | package com.nowcoder.service;
2 |
3 | import com.nowcoder.dao.CommentDAO;
4 | import com.nowcoder.model.Comment;
5 | import org.slf4j.Logger;
6 | import org.slf4j.LoggerFactory;
7 | import org.springframework.beans.factory.annotation.Autowired;
8 | import org.springframework.stereotype.Service;
9 | import org.springframework.web.util.HtmlUtils;
10 |
11 | import java.util.List;
12 |
13 | @Service
14 | public class CommentService {
15 | private static final Logger logger = LoggerFactory.getLogger(CommentService.class);
16 |
17 | @Autowired
18 | CommentDAO commentDAO;
19 |
20 | @Autowired
21 | SensitiveService sensitiveService;
22 |
23 | public List getCommentsByEntity(int entityId, int entityType) {
24 | return commentDAO.selectCommentByEntity(entityId, entityType);
25 | }
26 |
27 | public int addComment(Comment comment) {
28 | comment.setContent(HtmlUtils.htmlEscape(comment.getContent()));
29 | comment.setContent(sensitiveService.filter(comment.getContent()));
30 | return commentDAO.addComment(comment) > 0 ? comment.getId() : 0;
31 | }
32 |
33 | public int getCommentCount(int entityId, int entityType) {
34 | return commentDAO.getCommentCount(entityId, entityType);
35 | }
36 |
37 | public int getUserCommentCount(int userId) {
38 | return commentDAO.getUserCommentCount(userId);
39 | }
40 |
41 | public boolean updateStatus(int commentId) {
42 | return commentDAO.updateStatus(commentId, 1) > 0;
43 | }
44 |
45 | public Comment getCommentById(int id) {
46 | return commentDAO.getCommentById(id);
47 | }
48 | }
49 |
--------------------------------------------------------------------------------
/wenda/src/main/java/com/nowcoder/service/FeedService.java:
--------------------------------------------------------------------------------
1 | package com.nowcoder.service;
2 |
3 | import com.nowcoder.dao.FeedDAO;
4 | import com.nowcoder.model.Feed;
5 | import org.springframework.beans.factory.annotation.Autowired;
6 | import org.springframework.stereotype.Service;
7 |
8 | import java.util.List;
9 |
10 | @Service
11 | public class FeedService {
12 | @Autowired
13 | FeedDAO feedDAO;
14 |
15 | public List getUserFeeds(int maxId, List userIds, int count) {
16 | return feedDAO.selectUserFeeds(maxId, userIds, count);
17 | }
18 |
19 | public boolean addFeed(Feed feed) {
20 | feedDAO.addFeed(feed);
21 | return feed.getId() > 0;
22 | }
23 |
24 | public Feed getById(int id) {
25 | return feedDAO.getFeedById(id);
26 | }
27 |
28 | }
29 |
--------------------------------------------------------------------------------
/wenda/src/main/java/com/nowcoder/service/LoginTicketService.java:
--------------------------------------------------------------------------------
1 | package com.nowcoder.service;
2 |
3 | import org.springframework.stereotype.Service;
4 |
5 | @Service
6 | public class LoginTicketService {
7 |
8 | }
9 |
--------------------------------------------------------------------------------
/wenda/src/main/java/com/nowcoder/service/MessageService.java:
--------------------------------------------------------------------------------
1 | package com.nowcoder.service;
2 |
3 | import com.nowcoder.dao.MessageDAO;
4 | import com.nowcoder.model.Message;
5 | import org.slf4j.Logger;
6 | import org.slf4j.LoggerFactory;
7 | import org.springframework.beans.factory.annotation.Autowired;
8 | import org.springframework.stereotype.Service;
9 |
10 | import java.util.List;
11 |
12 | @Service
13 | public class MessageService {
14 | private static final Logger logger = LoggerFactory.getLogger(MessageService.class);
15 |
16 | @Autowired
17 | MessageDAO messageDAO;
18 |
19 | @Autowired
20 | SensitiveService sensitiveService;
21 |
22 | public int addMessage(Message message) {
23 | message.setContent(sensitiveService.filter(message.getContent()));
24 | return messageDAO.addMessage(message) > 0 ? message.getId() : 0;
25 | }
26 |
27 | public List getConversationDetail(String conversationId, int offset, int limit) {
28 | return messageDAO.getConversationDetail(conversationId, offset, limit);
29 | }
30 |
31 | public List getConversationList(int userId, int offset, int limit) {
32 | return messageDAO.getConversationList(userId, offset, limit);
33 | }
34 |
35 | public int getConversationUnreadCount(int userId, String conversationId) {
36 | return messageDAO.getConversationUnreadCount(userId, conversationId);
37 | }
38 |
39 | public void updateHasRead(int toId) {
40 | messageDAO.updateHasRead(toId);
41 | }
42 |
43 | }
44 |
--------------------------------------------------------------------------------
/wenda/src/main/java/com/nowcoder/service/QuestionService.java:
--------------------------------------------------------------------------------
1 | package com.nowcoder.service;
2 |
3 | import com.nowcoder.dao.QuestionDAO;
4 | import com.nowcoder.model.Question;
5 | import org.springframework.beans.factory.annotation.Autowired;
6 | import org.springframework.stereotype.Service;
7 | import org.springframework.web.util.HtmlUtils;
8 |
9 | import java.util.List;
10 |
11 | @Service
12 | public class QuestionService {
13 | @Autowired
14 | QuestionDAO questionDAO;
15 |
16 | @Autowired
17 | SensitiveService sensitiveService;
18 |
19 | public int addQuestion(Question question) {
20 | //html文本过滤
21 | question.setTitle(HtmlUtils.htmlEscape(question.getTitle()));
22 | question.setContent(HtmlUtils.htmlEscape(question.getContent()));
23 | //敏感词过滤
24 | question.setTitle(sensitiveService.filter(question.getTitle()));
25 | question.setContent(sensitiveService.filter(question.getContent()));
26 |
27 | return questionDAO.addQuestion(question) > 0 ? question.getId() : 0;
28 | }
29 |
30 | public List getLatestQuestions(int userId, int offset, int limit) {
31 | return questionDAO.selectLatestQuestions(userId, offset, limit);
32 | }
33 |
34 | public Question selectById(int id) {
35 | return questionDAO.selectById(id);
36 | }
37 |
38 | public int updateCommentCount(int id, int count) {
39 | return questionDAO.updateCommentCount(id, count);
40 | }
41 | }
42 |
--------------------------------------------------------------------------------
/wenda/src/main/java/com/nowcoder/service/WendaService.java:
--------------------------------------------------------------------------------
1 | package com.nowcoder.service;
2 |
3 | import org.springframework.stereotype.Service;
4 |
5 | @Service
6 | public class WendaService {
7 | public String getMessage(int userId) {
8 | return "Hello Message:" + String.valueOf(userId);
9 | }
10 | }
11 |
--------------------------------------------------------------------------------
/wenda/src/main/java/com/nowcoder/util/RedisKeyUtil.java:
--------------------------------------------------------------------------------
1 | package com.nowcoder.util;
2 |
3 | public class RedisKeyUtil {
4 | private static String SPLIT = ":";
5 | private static String BIZ_LIKE = "LIKE";
6 | private static String BIZ_DISLIKE = "DISLIKE";
7 | private static String BIZ_EVENTQUEUE = "EVENT_QUEUE";
8 |
9 | //粉丝
10 | private static String BIZ_FOLLOWER = "FOLLOWER";
11 | //关注对象
12 | private static String BIZ_FOLLOWEE = "FOLLOWEE";
13 | private static String BIZ_TIMELINE = "TIMELINE";
14 |
15 | public static String getLikeKey(int entityType, int entityId) {
16 | return BIZ_LIKE + SPLIT + String.valueOf(entityType) + SPLIT + String.valueOf(entityId);
17 | }
18 |
19 | public static String getDisLikeKey(int entityType, int entityId) {
20 | return BIZ_DISLIKE + SPLIT + String.valueOf(entityType) + SPLIT + String.valueOf(entityId);
21 | }
22 |
23 | public static String getFollowerKey(int entityType, int entityId) {
24 | return BIZ_FOLLOWER + SPLIT + String.valueOf(entityType) + SPLIT + String.valueOf(entityId);
25 | }
26 |
27 | public static String getFolloweeKey(int userId, int entityType) {
28 | return BIZ_FOLLOWEE + SPLIT + String.valueOf(userId) + SPLIT + String.valueOf(entityType);
29 | }
30 |
31 | public static String getEventQueueKey() {
32 | return BIZ_EVENTQUEUE;
33 | }
34 |
35 | public static String getTimelineKey(int userId) {
36 | return BIZ_TIMELINE + SPLIT + String.valueOf(userId);
37 | }
38 | }
39 |
--------------------------------------------------------------------------------
/wenda/src/main/java/com/nowcoder/util/WendaUtil.java:
--------------------------------------------------------------------------------
1 | package com.nowcoder.util;
2 |
3 | import com.alibaba.fastjson.JSONObject;
4 | import org.slf4j.Logger;
5 | import org.slf4j.LoggerFactory;
6 |
7 | import java.util.Map;
8 |
9 | public class WendaUtil {
10 | private static final Logger logger = LoggerFactory.getLogger(WendaUtil.class);
11 |
12 | public static int ANONYMOUS_USERID = 3; //匿名用户id
13 |
14 | public static int SYSTEM_USERID = 0;
15 |
16 | public static String getJSONString(int code) {
17 | JSONObject json = new JSONObject();
18 | json.put("code", code);
19 | return json.toJSONString();
20 | }
21 |
22 | public static String getJSONString(int code, String msg) {
23 | JSONObject json = new JSONObject();
24 | json.put("code", code);
25 | json.put("msg", msg);
26 | return json.toJSONString();
27 | }
28 |
29 | public static String getJSONString(int code, Map map) {
30 | JSONObject json = new JSONObject();
31 | json.put("code", code);
32 | for (Map.Entry entry : map.entrySet()) {
33 | json.put(entry.getKey(), entry.getValue());
34 | }
35 | return json.toJSONString();
36 | }
37 |
38 | }
39 |
--------------------------------------------------------------------------------
/wenda/src/main/resources/SensitiveWords.txt:
--------------------------------------------------------------------------------
1 | 嫖娼
2 | 赌博
3 | 色情
--------------------------------------------------------------------------------
/wenda/src/main/resources/application.properties:
--------------------------------------------------------------------------------
1 | spring.velocity.suffix=.html
2 | spring.datasource.url=jdbc:mysql://localhost:3306/wenda?useUnicode=true&characterEncoding=utf8&useSSL=false&serverTimezone=UTC
3 | spring.datasource.username=root
4 | spring.datasource.password=150000
5 | spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
6 | mybatis.config-location=classpath:mybatis-config.xml
7 | spring.velocity.toolbox-config-location=toolbox.xml
--------------------------------------------------------------------------------
/wenda/src/main/resources/com/nowcoder/dao/FeedDAO.xml:
--------------------------------------------------------------------------------
1 |
2 |
4 |
5 | feed
6 | id, created_date, user_id, data, type
7 |
8 |
24 |
25 |
--------------------------------------------------------------------------------
/wenda/src/main/resources/com/nowcoder/dao/QuestionDAO.xml:
--------------------------------------------------------------------------------
1 |
2 |
4 |
5 | question
6 | id, title, content, comment_count,created_date,user_id
7 |
8 |
20 |
21 |
--------------------------------------------------------------------------------
/wenda/src/main/resources/mybatis-config.xml:
--------------------------------------------------------------------------------
1 |
2 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
17 |
18 |
19 |
20 |
21 |
22 |
--------------------------------------------------------------------------------
/wenda/src/main/resources/static/images/img/spinner2.8f60205d.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hzcforever/nowcoder-project/aaf6d36983d7cf4525cd8def7039fd6ffd6bb345/wenda/src/main/resources/static/images/img/spinner2.8f60205d.gif
--------------------------------------------------------------------------------
/wenda/src/main/resources/static/images/img/sprites-1.9.2.4c54885a.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hzcforever/nowcoder-project/aaf6d36983d7cf4525cd8def7039fd6ffd6bb345/wenda/src/main/resources/static/images/img/sprites-1.9.2.4c54885a.png
--------------------------------------------------------------------------------
/wenda/src/main/resources/static/images/img/sprites-1.9.2@2x.6e638473.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hzcforever/nowcoder-project/aaf6d36983d7cf4525cd8def7039fd6ffd6bb345/wenda/src/main/resources/static/images/img/sprites-1.9.2@2x.6e638473.png
--------------------------------------------------------------------------------
/wenda/src/main/resources/static/images/img/sprites.auto.915a539c.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hzcforever/nowcoder-project/aaf6d36983d7cf4525cd8def7039fd6ffd6bb345/wenda/src/main/resources/static/images/img/sprites.auto.915a539c.png
--------------------------------------------------------------------------------
/wenda/src/main/resources/static/images/img/sprites@2x.auto.dd5c79c1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hzcforever/nowcoder-project/aaf6d36983d7cf4525cd8def7039fd6ffd6bb345/wenda/src/main/resources/static/images/img/sprites@2x.auto.dd5c79c1.png
--------------------------------------------------------------------------------
/wenda/src/main/resources/static/images/res/070a9fb26_is.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hzcforever/nowcoder-project/aaf6d36983d7cf4525cd8def7039fd6ffd6bb345/wenda/src/main/resources/static/images/res/070a9fb26_is.jpg
--------------------------------------------------------------------------------
/wenda/src/main/resources/static/images/res/0b856ef58f76b7c83a0e130f6ef71281_200x112.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hzcforever/nowcoder-project/aaf6d36983d7cf4525cd8def7039fd6ffd6bb345/wenda/src/main/resources/static/images/res/0b856ef58f76b7c83a0e130f6ef71281_200x112.jpg
--------------------------------------------------------------------------------
/wenda/src/main/resources/static/images/res/0ba3da3f03ced7a438118b0be77df56c_m.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hzcforever/nowcoder-project/aaf6d36983d7cf4525cd8def7039fd6ffd6bb345/wenda/src/main/resources/static/images/res/0ba3da3f03ced7a438118b0be77df56c_m.jpg
--------------------------------------------------------------------------------
/wenda/src/main/resources/static/images/res/0c6a39621ab1d456b1e6e492d0becc0c_s.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hzcforever/nowcoder-project/aaf6d36983d7cf4525cd8def7039fd6ffd6bb345/wenda/src/main/resources/static/images/res/0c6a39621ab1d456b1e6e492d0becc0c_s.jpg
--------------------------------------------------------------------------------
/wenda/src/main/resources/static/images/res/0cf21546298ad1ed3cb64be61d822c27_m.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hzcforever/nowcoder-project/aaf6d36983d7cf4525cd8def7039fd6ffd6bb345/wenda/src/main/resources/static/images/res/0cf21546298ad1ed3cb64be61d822c27_m.jpg
--------------------------------------------------------------------------------
/wenda/src/main/resources/static/images/res/0cffb89d0b0bd4e726ae54b212a31c3b_200x112.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hzcforever/nowcoder-project/aaf6d36983d7cf4525cd8def7039fd6ffd6bb345/wenda/src/main/resources/static/images/res/0cffb89d0b0bd4e726ae54b212a31c3b_200x112.jpg
--------------------------------------------------------------------------------
/wenda/src/main/resources/static/images/res/102799979_m.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hzcforever/nowcoder-project/aaf6d36983d7cf4525cd8def7039fd6ffd6bb345/wenda/src/main/resources/static/images/res/102799979_m.jpg
--------------------------------------------------------------------------------
/wenda/src/main/resources/static/images/res/10a4cd7fb082375332be33eadfd14c58_is.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hzcforever/nowcoder-project/aaf6d36983d7cf4525cd8def7039fd6ffd6bb345/wenda/src/main/resources/static/images/res/10a4cd7fb082375332be33eadfd14c58_is.jpg
--------------------------------------------------------------------------------
/wenda/src/main/resources/static/images/res/11ba31c8bb5473a44b7690eff24b9123_is.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hzcforever/nowcoder-project/aaf6d36983d7cf4525cd8def7039fd6ffd6bb345/wenda/src/main/resources/static/images/res/11ba31c8bb5473a44b7690eff24b9123_is.jpg
--------------------------------------------------------------------------------
/wenda/src/main/resources/static/images/res/11be4a90ed938abfbab4899df56ee754_s.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hzcforever/nowcoder-project/aaf6d36983d7cf4525cd8def7039fd6ffd6bb345/wenda/src/main/resources/static/images/res/11be4a90ed938abfbab4899df56ee754_s.png
--------------------------------------------------------------------------------
/wenda/src/main/resources/static/images/res/12a8e1ce5ad8060fddb93ae2df98028b_m.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hzcforever/nowcoder-project/aaf6d36983d7cf4525cd8def7039fd6ffd6bb345/wenda/src/main/resources/static/images/res/12a8e1ce5ad8060fddb93ae2df98028b_m.jpg
--------------------------------------------------------------------------------
/wenda/src/main/resources/static/images/res/19456ebfe8b207320735f282769ac635_s.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hzcforever/nowcoder-project/aaf6d36983d7cf4525cd8def7039fd6ffd6bb345/wenda/src/main/resources/static/images/res/19456ebfe8b207320735f282769ac635_s.jpg
--------------------------------------------------------------------------------
/wenda/src/main/resources/static/images/res/1ac7840eeb19ada0bbf85f51702d5784_s.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hzcforever/nowcoder-project/aaf6d36983d7cf4525cd8def7039fd6ffd6bb345/wenda/src/main/resources/static/images/res/1ac7840eeb19ada0bbf85f51702d5784_s.jpg
--------------------------------------------------------------------------------
/wenda/src/main/resources/static/images/res/1ce495b02_m.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hzcforever/nowcoder-project/aaf6d36983d7cf4525cd8def7039fd6ffd6bb345/wenda/src/main/resources/static/images/res/1ce495b02_m.jpg
--------------------------------------------------------------------------------
/wenda/src/main/resources/static/images/res/23cace5cf60f39dbc095bd7a12b2cfad_200x112.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hzcforever/nowcoder-project/aaf6d36983d7cf4525cd8def7039fd6ffd6bb345/wenda/src/main/resources/static/images/res/23cace5cf60f39dbc095bd7a12b2cfad_200x112.jpg
--------------------------------------------------------------------------------
/wenda/src/main/resources/static/images/res/24ce38dd5fc2a0c4e0525e577eef7d64_s.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hzcforever/nowcoder-project/aaf6d36983d7cf4525cd8def7039fd6ffd6bb345/wenda/src/main/resources/static/images/res/24ce38dd5fc2a0c4e0525e577eef7d64_s.png
--------------------------------------------------------------------------------
/wenda/src/main/resources/static/images/res/272627e471a533f58f319a9e600e0a94_is.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hzcforever/nowcoder-project/aaf6d36983d7cf4525cd8def7039fd6ffd6bb345/wenda/src/main/resources/static/images/res/272627e471a533f58f319a9e600e0a94_is.png
--------------------------------------------------------------------------------
/wenda/src/main/resources/static/images/res/2e21e58a990f5c756e813a64a4bba14c_m.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hzcforever/nowcoder-project/aaf6d36983d7cf4525cd8def7039fd6ffd6bb345/wenda/src/main/resources/static/images/res/2e21e58a990f5c756e813a64a4bba14c_m.jpg
--------------------------------------------------------------------------------
/wenda/src/main/resources/static/images/res/31826765d442d8222a05cd67d0643a25_270x225.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hzcforever/nowcoder-project/aaf6d36983d7cf4525cd8def7039fd6ffd6bb345/wenda/src/main/resources/static/images/res/31826765d442d8222a05cd67d0643a25_270x225.png
--------------------------------------------------------------------------------
/wenda/src/main/resources/static/images/res/33fb6f51a3f4e16b6e89172040451dca_b.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hzcforever/nowcoder-project/aaf6d36983d7cf4525cd8def7039fd6ffd6bb345/wenda/src/main/resources/static/images/res/33fb6f51a3f4e16b6e89172040451dca_b.png
--------------------------------------------------------------------------------
/wenda/src/main/resources/static/images/res/3b673d6335ef6788d1659ee2b6381e97_m.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hzcforever/nowcoder-project/aaf6d36983d7cf4525cd8def7039fd6ffd6bb345/wenda/src/main/resources/static/images/res/3b673d6335ef6788d1659ee2b6381e97_m.jpg
--------------------------------------------------------------------------------
/wenda/src/main/resources/static/images/res/41d652d947a489e056b0179ba137294b_m.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hzcforever/nowcoder-project/aaf6d36983d7cf4525cd8def7039fd6ffd6bb345/wenda/src/main/resources/static/images/res/41d652d947a489e056b0179ba137294b_m.png
--------------------------------------------------------------------------------
/wenda/src/main/resources/static/images/res/450c9d9f5240f05f73d21fe3ae76f1a6_200x112.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hzcforever/nowcoder-project/aaf6d36983d7cf4525cd8def7039fd6ffd6bb345/wenda/src/main/resources/static/images/res/450c9d9f5240f05f73d21fe3ae76f1a6_200x112.jpg
--------------------------------------------------------------------------------
/wenda/src/main/resources/static/images/res/4528283ed249589634546327431667bf_is.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hzcforever/nowcoder-project/aaf6d36983d7cf4525cd8def7039fd6ffd6bb345/wenda/src/main/resources/static/images/res/4528283ed249589634546327431667bf_is.jpg
--------------------------------------------------------------------------------
/wenda/src/main/resources/static/images/res/4d104b6c6a08f7e1a48f4f32c88b1ce2_m.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hzcforever/nowcoder-project/aaf6d36983d7cf4525cd8def7039fd6ffd6bb345/wenda/src/main/resources/static/images/res/4d104b6c6a08f7e1a48f4f32c88b1ce2_m.jpg
--------------------------------------------------------------------------------
/wenda/src/main/resources/static/images/res/51559bbebaa7fd395c271b7b1c8b9f26_m.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hzcforever/nowcoder-project/aaf6d36983d7cf4525cd8def7039fd6ffd6bb345/wenda/src/main/resources/static/images/res/51559bbebaa7fd395c271b7b1c8b9f26_m.jpg
--------------------------------------------------------------------------------
/wenda/src/main/resources/static/images/res/558b3e3d8be209247159ba4f83ab1c02_200x112.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hzcforever/nowcoder-project/aaf6d36983d7cf4525cd8def7039fd6ffd6bb345/wenda/src/main/resources/static/images/res/558b3e3d8be209247159ba4f83ab1c02_200x112.jpg
--------------------------------------------------------------------------------
/wenda/src/main/resources/static/images/res/6088e39f2_is.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hzcforever/nowcoder-project/aaf6d36983d7cf4525cd8def7039fd6ffd6bb345/wenda/src/main/resources/static/images/res/6088e39f2_is.jpg
--------------------------------------------------------------------------------
/wenda/src/main/resources/static/images/res/66a689b2c60557eae79d839aaedf48b0_200x112.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hzcforever/nowcoder-project/aaf6d36983d7cf4525cd8def7039fd6ffd6bb345/wenda/src/main/resources/static/images/res/66a689b2c60557eae79d839aaedf48b0_200x112.png
--------------------------------------------------------------------------------
/wenda/src/main/resources/static/images/res/6c76223a5aef2f1d29c680a2524de791_is.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hzcforever/nowcoder-project/aaf6d36983d7cf4525cd8def7039fd6ffd6bb345/wenda/src/main/resources/static/images/res/6c76223a5aef2f1d29c680a2524de791_is.jpg
--------------------------------------------------------------------------------
/wenda/src/main/resources/static/images/res/6ceea810748d179f57cac0baa5cf9592_s.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hzcforever/nowcoder-project/aaf6d36983d7cf4525cd8def7039fd6ffd6bb345/wenda/src/main/resources/static/images/res/6ceea810748d179f57cac0baa5cf9592_s.jpg
--------------------------------------------------------------------------------
/wenda/src/main/resources/static/images/res/6cfbfc0c5e3c5ecd8784f7e733a75b4f_m.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hzcforever/nowcoder-project/aaf6d36983d7cf4525cd8def7039fd6ffd6bb345/wenda/src/main/resources/static/images/res/6cfbfc0c5e3c5ecd8784f7e733a75b4f_m.jpg
--------------------------------------------------------------------------------
/wenda/src/main/resources/static/images/res/6fd46860a4b6cbc1e52d676f217ea9fd_is.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hzcforever/nowcoder-project/aaf6d36983d7cf4525cd8def7039fd6ffd6bb345/wenda/src/main/resources/static/images/res/6fd46860a4b6cbc1e52d676f217ea9fd_is.jpg
--------------------------------------------------------------------------------
/wenda/src/main/resources/static/images/res/7412830858217e93f6c5d06f6328cbd5_200x112.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hzcforever/nowcoder-project/aaf6d36983d7cf4525cd8def7039fd6ffd6bb345/wenda/src/main/resources/static/images/res/7412830858217e93f6c5d06f6328cbd5_200x112.png
--------------------------------------------------------------------------------
/wenda/src/main/resources/static/images/res/7986ef6045f2cef8352be5affce5f7d1_is.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hzcforever/nowcoder-project/aaf6d36983d7cf4525cd8def7039fd6ffd6bb345/wenda/src/main/resources/static/images/res/7986ef6045f2cef8352be5affce5f7d1_is.jpg
--------------------------------------------------------------------------------
/wenda/src/main/resources/static/images/res/837b60aa36029a2309974e74de3b62e9_xl.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hzcforever/nowcoder-project/aaf6d36983d7cf4525cd8def7039fd6ffd6bb345/wenda/src/main/resources/static/images/res/837b60aa36029a2309974e74de3b62e9_xl.png
--------------------------------------------------------------------------------
/wenda/src/main/resources/static/images/res/845303838eca4a5b5f03cc3ca994ec28_s.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hzcforever/nowcoder-project/aaf6d36983d7cf4525cd8def7039fd6ffd6bb345/wenda/src/main/resources/static/images/res/845303838eca4a5b5f03cc3ca994ec28_s.png
--------------------------------------------------------------------------------
/wenda/src/main/resources/static/images/res/845c492813e72b85c6e11cccf8ed0ff8_m.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hzcforever/nowcoder-project/aaf6d36983d7cf4525cd8def7039fd6ffd6bb345/wenda/src/main/resources/static/images/res/845c492813e72b85c6e11cccf8ed0ff8_m.jpg
--------------------------------------------------------------------------------
/wenda/src/main/resources/static/images/res/935f87219_m.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hzcforever/nowcoder-project/aaf6d36983d7cf4525cd8def7039fd6ffd6bb345/wenda/src/main/resources/static/images/res/935f87219_m.jpg
--------------------------------------------------------------------------------
/wenda/src/main/resources/static/images/res/975baaf73fd76f48ce6f05e19b176878_xl.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hzcforever/nowcoder-project/aaf6d36983d7cf4525cd8def7039fd6ffd6bb345/wenda/src/main/resources/static/images/res/975baaf73fd76f48ce6f05e19b176878_xl.jpg
--------------------------------------------------------------------------------
/wenda/src/main/resources/static/images/res/9cfe980ca44e38bd9b0e5c3dee5b0f3e_270x225.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hzcforever/nowcoder-project/aaf6d36983d7cf4525cd8def7039fd6ffd6bb345/wenda/src/main/resources/static/images/res/9cfe980ca44e38bd9b0e5c3dee5b0f3e_270x225.jpg
--------------------------------------------------------------------------------
/wenda/src/main/resources/static/images/res/9ec0168d1b210d9b8f089e16f521b82b_200x112.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hzcforever/nowcoder-project/aaf6d36983d7cf4525cd8def7039fd6ffd6bb345/wenda/src/main/resources/static/images/res/9ec0168d1b210d9b8f089e16f521b82b_200x112.jpg
--------------------------------------------------------------------------------
/wenda/src/main/resources/static/images/res/a3f80f6a6_m.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hzcforever/nowcoder-project/aaf6d36983d7cf4525cd8def7039fd6ffd6bb345/wenda/src/main/resources/static/images/res/a3f80f6a6_m.jpg
--------------------------------------------------------------------------------
/wenda/src/main/resources/static/images/res/a4df63114bd9374a73775e30db1cdd36_is.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hzcforever/nowcoder-project/aaf6d36983d7cf4525cd8def7039fd6ffd6bb345/wenda/src/main/resources/static/images/res/a4df63114bd9374a73775e30db1cdd36_is.jpg
--------------------------------------------------------------------------------
/wenda/src/main/resources/static/images/res/a57fdaff90865eaaef2e87051624862b_m.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hzcforever/nowcoder-project/aaf6d36983d7cf4525cd8def7039fd6ffd6bb345/wenda/src/main/resources/static/images/res/a57fdaff90865eaaef2e87051624862b_m.jpg
--------------------------------------------------------------------------------
/wenda/src/main/resources/static/images/res/aa49b7ceff22ea68ca5f747115cd17af_200x112.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hzcforever/nowcoder-project/aaf6d36983d7cf4525cd8def7039fd6ffd6bb345/wenda/src/main/resources/static/images/res/aa49b7ceff22ea68ca5f747115cd17af_200x112.jpg
--------------------------------------------------------------------------------
/wenda/src/main/resources/static/images/res/aadd7b895_m.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hzcforever/nowcoder-project/aaf6d36983d7cf4525cd8def7039fd6ffd6bb345/wenda/src/main/resources/static/images/res/aadd7b895_m.jpg
--------------------------------------------------------------------------------
/wenda/src/main/resources/static/images/res/aadd7b895_s.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hzcforever/nowcoder-project/aaf6d36983d7cf4525cd8def7039fd6ffd6bb345/wenda/src/main/resources/static/images/res/aadd7b895_s.jpg
--------------------------------------------------------------------------------
/wenda/src/main/resources/static/images/res/actioncard-suggested-avatar.c5af416d.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hzcforever/nowcoder-project/aaf6d36983d7cf4525cd8def7039fd6ffd6bb345/wenda/src/main/resources/static/images/res/actioncard-suggested-avatar.c5af416d.png
--------------------------------------------------------------------------------
/wenda/src/main/resources/static/images/res/actioncard-validation@2x.65147043.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hzcforever/nowcoder-project/aaf6d36983d7cf4525cd8def7039fd6ffd6bb345/wenda/src/main/resources/static/images/res/actioncard-validation@2x.65147043.png
--------------------------------------------------------------------------------
/wenda/src/main/resources/static/images/res/b144d91ec_m.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hzcforever/nowcoder-project/aaf6d36983d7cf4525cd8def7039fd6ffd6bb345/wenda/src/main/resources/static/images/res/b144d91ec_m.jpg
--------------------------------------------------------------------------------
/wenda/src/main/resources/static/images/res/b3aadf89405941b05a5ce00fb06f8281_m.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hzcforever/nowcoder-project/aaf6d36983d7cf4525cd8def7039fd6ffd6bb345/wenda/src/main/resources/static/images/res/b3aadf89405941b05a5ce00fb06f8281_m.jpg
--------------------------------------------------------------------------------
/wenda/src/main/resources/static/images/res/b476f1461388bf4907634009904739e6_is.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hzcforever/nowcoder-project/aaf6d36983d7cf4525cd8def7039fd6ffd6bb345/wenda/src/main/resources/static/images/res/b476f1461388bf4907634009904739e6_is.jpg
--------------------------------------------------------------------------------
/wenda/src/main/resources/static/images/res/b4a6228e6810d38e19e491c173af4d5c_m.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hzcforever/nowcoder-project/aaf6d36983d7cf4525cd8def7039fd6ffd6bb345/wenda/src/main/resources/static/images/res/b4a6228e6810d38e19e491c173af4d5c_m.png
--------------------------------------------------------------------------------
/wenda/src/main/resources/static/images/res/b85ddd8aa_xl.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hzcforever/nowcoder-project/aaf6d36983d7cf4525cd8def7039fd6ffd6bb345/wenda/src/main/resources/static/images/res/b85ddd8aa_xl.jpg
--------------------------------------------------------------------------------
/wenda/src/main/resources/static/images/res/badaaf312e59c125928bd1ea2d4b5a51_b.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hzcforever/nowcoder-project/aaf6d36983d7cf4525cd8def7039fd6ffd6bb345/wenda/src/main/resources/static/images/res/badaaf312e59c125928bd1ea2d4b5a51_b.jpg
--------------------------------------------------------------------------------
/wenda/src/main/resources/static/images/res/bb73b7fb48b0cb63aa573415dfe4d0c5_m.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hzcforever/nowcoder-project/aaf6d36983d7cf4525cd8def7039fd6ffd6bb345/wenda/src/main/resources/static/images/res/bb73b7fb48b0cb63aa573415dfe4d0c5_m.jpg
--------------------------------------------------------------------------------
/wenda/src/main/resources/static/images/res/bc93fd5289c13c06fd569bc4f6df821e_is.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hzcforever/nowcoder-project/aaf6d36983d7cf4525cd8def7039fd6ffd6bb345/wenda/src/main/resources/static/images/res/bc93fd5289c13c06fd569bc4f6df821e_is.jpg
--------------------------------------------------------------------------------
/wenda/src/main/resources/static/images/res/be39d110759e68f389b7d2934d7353bc_m.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hzcforever/nowcoder-project/aaf6d36983d7cf4525cd8def7039fd6ffd6bb345/wenda/src/main/resources/static/images/res/be39d110759e68f389b7d2934d7353bc_m.jpg
--------------------------------------------------------------------------------
/wenda/src/main/resources/static/images/res/c07f969d8dcc6251ef114fe6b1a9a563_200x112.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hzcforever/nowcoder-project/aaf6d36983d7cf4525cd8def7039fd6ffd6bb345/wenda/src/main/resources/static/images/res/c07f969d8dcc6251ef114fe6b1a9a563_200x112.jpg
--------------------------------------------------------------------------------
/wenda/src/main/resources/static/images/res/c28e9af7f_m.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hzcforever/nowcoder-project/aaf6d36983d7cf4525cd8def7039fd6ffd6bb345/wenda/src/main/resources/static/images/res/c28e9af7f_m.jpg
--------------------------------------------------------------------------------
/wenda/src/main/resources/static/images/res/c54bb4367803ba590035d2d89d1a84dd_is.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hzcforever/nowcoder-project/aaf6d36983d7cf4525cd8def7039fd6ffd6bb345/wenda/src/main/resources/static/images/res/c54bb4367803ba590035d2d89d1a84dd_is.jpg
--------------------------------------------------------------------------------
/wenda/src/main/resources/static/images/res/c79247853_m.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hzcforever/nowcoder-project/aaf6d36983d7cf4525cd8def7039fd6ffd6bb345/wenda/src/main/resources/static/images/res/c79247853_m.jpg
--------------------------------------------------------------------------------
/wenda/src/main/resources/static/images/res/c898060535edfdbe4147d2135c29787f_200x112.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hzcforever/nowcoder-project/aaf6d36983d7cf4525cd8def7039fd6ffd6bb345/wenda/src/main/resources/static/images/res/c898060535edfdbe4147d2135c29787f_200x112.jpg
--------------------------------------------------------------------------------
/wenda/src/main/resources/static/images/res/c94c92af8_m.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hzcforever/nowcoder-project/aaf6d36983d7cf4525cd8def7039fd6ffd6bb345/wenda/src/main/resources/static/images/res/c94c92af8_m.jpg
--------------------------------------------------------------------------------
/wenda/src/main/resources/static/images/res/cafae465b8ea283498c69ab9757f86ba_xl.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hzcforever/nowcoder-project/aaf6d36983d7cf4525cd8def7039fd6ffd6bb345/wenda/src/main/resources/static/images/res/cafae465b8ea283498c69ab9757f86ba_xl.jpg
--------------------------------------------------------------------------------
/wenda/src/main/resources/static/images/res/captcha.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hzcforever/nowcoder-project/aaf6d36983d7cf4525cd8def7039fd6ffd6bb345/wenda/src/main/resources/static/images/res/captcha.gif
--------------------------------------------------------------------------------
/wenda/src/main/resources/static/images/res/cbc5d3c6f333215a1c480cb3b4735b45_m.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hzcforever/nowcoder-project/aaf6d36983d7cf4525cd8def7039fd6ffd6bb345/wenda/src/main/resources/static/images/res/cbc5d3c6f333215a1c480cb3b4735b45_m.jpg
--------------------------------------------------------------------------------
/wenda/src/main/resources/static/images/res/d207854fffc9e0289fbd6bbbb3986988_s.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hzcforever/nowcoder-project/aaf6d36983d7cf4525cd8def7039fd6ffd6bb345/wenda/src/main/resources/static/images/res/d207854fffc9e0289fbd6bbbb3986988_s.jpg
--------------------------------------------------------------------------------
/wenda/src/main/resources/static/images/res/d6842d77b4bda238e0db09217e3d2f8d_270x225.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hzcforever/nowcoder-project/aaf6d36983d7cf4525cd8def7039fd6ffd6bb345/wenda/src/main/resources/static/images/res/d6842d77b4bda238e0db09217e3d2f8d_270x225.jpg
--------------------------------------------------------------------------------
/wenda/src/main/resources/static/images/res/d822a919d93a761634a67c2022a3f614_m.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hzcforever/nowcoder-project/aaf6d36983d7cf4525cd8def7039fd6ffd6bb345/wenda/src/main/resources/static/images/res/d822a919d93a761634a67c2022a3f614_m.jpg
--------------------------------------------------------------------------------
/wenda/src/main/resources/static/images/res/da8e974dc_is.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hzcforever/nowcoder-project/aaf6d36983d7cf4525cd8def7039fd6ffd6bb345/wenda/src/main/resources/static/images/res/da8e974dc_is.jpg
--------------------------------------------------------------------------------
/wenda/src/main/resources/static/images/res/da8e974dc_m.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hzcforever/nowcoder-project/aaf6d36983d7cf4525cd8def7039fd6ffd6bb345/wenda/src/main/resources/static/images/res/da8e974dc_m.jpg
--------------------------------------------------------------------------------
/wenda/src/main/resources/static/images/res/da8e974dc_s.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hzcforever/nowcoder-project/aaf6d36983d7cf4525cd8def7039fd6ffd6bb345/wenda/src/main/resources/static/images/res/da8e974dc_s.jpg
--------------------------------------------------------------------------------
/wenda/src/main/resources/static/images/res/df4aa616fdcfbd861c010ff71aaef95c_b.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hzcforever/nowcoder-project/aaf6d36983d7cf4525cd8def7039fd6ffd6bb345/wenda/src/main/resources/static/images/res/df4aa616fdcfbd861c010ff71aaef95c_b.jpg
--------------------------------------------------------------------------------
/wenda/src/main/resources/static/images/res/e174d6d0c_is.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hzcforever/nowcoder-project/aaf6d36983d7cf4525cd8def7039fd6ffd6bb345/wenda/src/main/resources/static/images/res/e174d6d0c_is.jpg
--------------------------------------------------------------------------------
/wenda/src/main/resources/static/images/res/e6f4caaaa_m.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hzcforever/nowcoder-project/aaf6d36983d7cf4525cd8def7039fd6ffd6bb345/wenda/src/main/resources/static/images/res/e6f4caaaa_m.jpg
--------------------------------------------------------------------------------
/wenda/src/main/resources/static/images/res/e8757728eb70adeb8ebaa0864874c29d_is.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hzcforever/nowcoder-project/aaf6d36983d7cf4525cd8def7039fd6ffd6bb345/wenda/src/main/resources/static/images/res/e8757728eb70adeb8ebaa0864874c29d_is.jpg
--------------------------------------------------------------------------------
/wenda/src/main/resources/static/images/res/ec6bb3fa05625b848ac4d475ecce35c9_is.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hzcforever/nowcoder-project/aaf6d36983d7cf4525cd8def7039fd6ffd6bb345/wenda/src/main/resources/static/images/res/ec6bb3fa05625b848ac4d475ecce35c9_is.jpg
--------------------------------------------------------------------------------
/wenda/src/main/resources/static/images/res/f1148eb1c7170cabb0a78dad73b590f6_200x112.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hzcforever/nowcoder-project/aaf6d36983d7cf4525cd8def7039fd6ffd6bb345/wenda/src/main/resources/static/images/res/f1148eb1c7170cabb0a78dad73b590f6_200x112.jpg
--------------------------------------------------------------------------------
/wenda/src/main/resources/static/images/res/f99201e42237de4fb7f8d5fbf9a2d270_is.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hzcforever/nowcoder-project/aaf6d36983d7cf4525cd8def7039fd6ffd6bb345/wenda/src/main/resources/static/images/res/f99201e42237de4fb7f8d5fbf9a2d270_is.jpg
--------------------------------------------------------------------------------
/wenda/src/main/resources/static/images/res/fa70eff301ba417d4a9d3f55d603a29e_s.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hzcforever/nowcoder-project/aaf6d36983d7cf4525cd8def7039fd6ffd6bb345/wenda/src/main/resources/static/images/res/fa70eff301ba417d4a9d3f55d603a29e_s.png
--------------------------------------------------------------------------------
/wenda/src/main/resources/static/images/res/facfb45ac94f174655695853d4470bac_200x112.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hzcforever/nowcoder-project/aaf6d36983d7cf4525cd8def7039fd6ffd6bb345/wenda/src/main/resources/static/images/res/facfb45ac94f174655695853d4470bac_200x112.jpg
--------------------------------------------------------------------------------
/wenda/src/main/resources/static/images/res/fb05f15bf8bffd1590df442ff6ba7812_200x112.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hzcforever/nowcoder-project/aaf6d36983d7cf4525cd8def7039fd6ffd6bb345/wenda/src/main/resources/static/images/res/fb05f15bf8bffd1590df442ff6ba7812_200x112.jpg
--------------------------------------------------------------------------------
/wenda/src/main/resources/static/images/res/fb6c4dd60a9f19f5fcd8265395e11f9e_200x112.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hzcforever/nowcoder-project/aaf6d36983d7cf4525cd8def7039fd6ffd6bb345/wenda/src/main/resources/static/images/res/fb6c4dd60a9f19f5fcd8265395e11f9e_200x112.jpg
--------------------------------------------------------------------------------
/wenda/src/main/resources/static/images/res/fff25000064308791f739149af611439_is.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hzcforever/nowcoder-project/aaf6d36983d7cf4525cd8def7039fd6ffd6bb345/wenda/src/main/resources/static/images/res/fff25000064308791f739149af611439_is.jpg
--------------------------------------------------------------------------------
/wenda/src/main/resources/static/images/res/hour.3d371c99.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hzcforever/nowcoder-project/aaf6d36983d7cf4525cd8def7039fd6ffd6bb345/wenda/src/main/resources/static/images/res/hour.3d371c99.png
--------------------------------------------------------------------------------
/wenda/src/main/resources/static/images/res/nacl.656ec1c4.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hzcforever/nowcoder-project/aaf6d36983d7cf4525cd8def7039fd6ffd6bb345/wenda/src/main/resources/static/images/res/nacl.656ec1c4.png
--------------------------------------------------------------------------------
/wenda/src/main/resources/static/images/res/nk.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hzcforever/nowcoder-project/aaf6d36983d7cf4525cd8def7039fd6ffd6bb345/wenda/src/main/resources/static/images/res/nk.png
--------------------------------------------------------------------------------
/wenda/src/main/resources/static/images/res/weekly.65279d61.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hzcforever/nowcoder-project/aaf6d36983d7cf4525cd8def7039fd6ffd6bb345/wenda/src/main/resources/static/images/res/weekly.65279d61.png
--------------------------------------------------------------------------------
/wenda/src/main/resources/static/scripts/main/base/util.js:
--------------------------------------------------------------------------------
1 | (function (window, undefined) {
2 | var Util = Base.createClass('main.base.Util');
3 | $.extend(Util, {
4 | isEmail: fIsEmail
5 | });
6 |
7 | function fIsEmail(sEmail) {
8 | sEmail = $.trim(sEmail);
9 | return sEmail && /^([a-zA-Z0-9_\.\-\+])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/.test(sEmail);
10 | }
11 | })(window);
--------------------------------------------------------------------------------
/wenda/src/main/resources/static/scripts/main/site/follow.js:
--------------------------------------------------------------------------------
1 | (function (window, undefined) {
2 | var Business = Base.getClass('main.util.Business');
3 |
4 | Base.ready({
5 | initialize: fInitialize
6 | });
7 |
8 | function fInitialize() {
9 | Business.followUser();
10 | }
11 | })();
--------------------------------------------------------------------------------
/wenda/src/main/resources/static/scripts/main/site/home.js:
--------------------------------------------------------------------------------
1 | (function (window, undefined) {
2 | var PopupAdd = Base.getClass('main.component.PopupAdd');
3 | var PopupMsg = Base.getClass('main.component.PopupMsg');
4 |
5 | Base.ready({
6 | initialize: fInitialize,
7 | binds: {
8 | 'click #zu-top-add-question': fClickAdd,
9 | 'click #zh-top-nav-count-wrap': fClickMsg
10 | }
11 | });
12 |
13 | function fInitialize() {
14 | var that = this;
15 | }
16 |
17 | function fClickAdd() {
18 | var that = this;
19 | PopupAdd.show({
20 | ok: function () {
21 | window.location.replace("/");
22 | }
23 | });
24 | }
25 |
26 | function fClickMsg() {
27 | var that = this;
28 | PopupMsg.show({
29 | ok: function () {
30 | window.location.replace("/msg/list");
31 | }
32 | });
33 | }
34 |
35 | })(window);
--------------------------------------------------------------------------------
/wenda/src/main/resources/static/scripts/main/site/profile.js:
--------------------------------------------------------------------------------
1 | (function (window, undefined) {
2 | var Business = Base.getClass('main.util.Business');
3 |
4 | Base.ready({
5 | initialize: fInitialize
6 | });
7 |
8 | function fInitialize() {
9 | Business.followUser();
10 | }
11 | })();
--------------------------------------------------------------------------------
/wenda/src/main/resources/templates/error.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | error page
6 |
7 |
8 | This is an error page.Please check your code.
9 |
10 |
--------------------------------------------------------------------------------
/wenda/src/main/resources/templates/footer.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |