🎉初版支持自动推送
This commit is contained in:
		
							
								
								
									
										138
									
								
								.gitignore
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										138
									
								
								.gitignore
									
									
									
									
										vendored
									
									
										Normal file
									
								
							| @@ -0,0 +1,138 @@ | ||||
| # Byte-compiled / optimized / DLL files | ||||
| __pycache__/ | ||||
| *.py[cod] | ||||
| *$py.class | ||||
|  | ||||
| # C extensions | ||||
| *.so | ||||
|  | ||||
| # Distribution / packaging | ||||
| .Python | ||||
| build/ | ||||
| develop-eggs/ | ||||
| dist/ | ||||
| downloads/ | ||||
| eggs/ | ||||
| .eggs/ | ||||
| lib/ | ||||
| lib64/ | ||||
| parts/ | ||||
| sdist/ | ||||
| var/ | ||||
| wheels/ | ||||
| share/python-wheels/ | ||||
| *.egg-info/ | ||||
| .installed.cfg | ||||
| *.egg | ||||
| MANIFEST | ||||
|  | ||||
| # PyInstaller | ||||
| #  Usually these files are written by a python script from a template | ||||
| #  before PyInstaller builds the exe, so as to inject date/other infos into it. | ||||
| *.manifest | ||||
| *.spec | ||||
|  | ||||
| # Installer logs | ||||
| pip-log.txt | ||||
| pip-delete-this-directory.txt | ||||
|  | ||||
| # Unit test / coverage reports | ||||
| htmlcov/ | ||||
| .tox/ | ||||
| .nox/ | ||||
| .coverage | ||||
| .coverage.* | ||||
| .cache | ||||
| nosetests.xml | ||||
| coverage.xml | ||||
| *.cover | ||||
| *.py,cover | ||||
| .hypothesis/ | ||||
| .pytest_cache/ | ||||
| cover/ | ||||
|  | ||||
| # Translations | ||||
| *.mo | ||||
| *.pot | ||||
|  | ||||
| # Django stuff: | ||||
| *.log | ||||
| local_settings.py | ||||
| db.sqlite3 | ||||
| db.sqlite3-journal | ||||
|  | ||||
| # Flask stuff: | ||||
| instance/ | ||||
| .webassets-cache | ||||
|  | ||||
| # Scrapy stuff: | ||||
| .scrapy | ||||
|  | ||||
| # Sphinx documentation | ||||
| docs/_build/ | ||||
|  | ||||
| # PyBuilder | ||||
| .pybuilder/ | ||||
| target/ | ||||
|  | ||||
| # Jupyter Notebook | ||||
| .ipynb_checkpoints | ||||
|  | ||||
| # IPython | ||||
| profile_default/ | ||||
| ipython_config.py | ||||
|  | ||||
| # pyenv | ||||
| #   For a library or package, you might want to ignore these files since the code is | ||||
| #   intended to run in multiple environments; otherwise, check them in: | ||||
| # .python-version | ||||
|  | ||||
| # pipenv | ||||
| #   According to pypa/pipenv#598, it is recommended to include Pipfile.lock in version control. | ||||
| #   However, in case of collaboration, if having platform-specific dependencies or dependencies | ||||
| #   having no cross-platform support, pipenv may install dependencies that don't work, or not | ||||
| #   install all needed dependencies. | ||||
| #Pipfile.lock | ||||
|  | ||||
| # PEP 582; used by e.g. github.com/David-OConnor/pyflow | ||||
| __pypackages__/ | ||||
|  | ||||
| # Celery stuff | ||||
| celerybeat-schedule | ||||
| celerybeat.pid | ||||
|  | ||||
| # SageMath parsed files | ||||
| *.sage.py | ||||
|  | ||||
| # Environments | ||||
| .env | ||||
| .venv | ||||
| env/ | ||||
| venv/ | ||||
| ENV/ | ||||
| env.bak/ | ||||
| venv.bak/ | ||||
|  | ||||
| # Spyder project settings | ||||
| .spyderproject | ||||
| .spyproject | ||||
|  | ||||
| # Rope project settings | ||||
| .ropeproject | ||||
|  | ||||
| # mkdocs documentation | ||||
| /site | ||||
|  | ||||
| # mypy | ||||
| .mypy_cache/ | ||||
| .dmypy.json | ||||
| dmypy.json | ||||
|  | ||||
| # Pyre type checker | ||||
| .pyre/ | ||||
|  | ||||
| # pytype static type analyzer | ||||
| .pytype/ | ||||
|  | ||||
| # Cython debug symbols | ||||
| cython_debug/ | ||||
							
								
								
									
										21
									
								
								LICENSE
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										21
									
								
								LICENSE
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,21 @@ | ||||
| MIT License | ||||
|  | ||||
| Copyright (c) 2023 Eigeen | ||||
|  | ||||
| Permission is hereby granted, free of charge, to any person obtaining a copy | ||||
| of this software and associated documentation files (the "Software"), to deal | ||||
| in the Software without restriction, including without limitation the rights | ||||
| to use, copy, modify, merge, publish, distribute, sublicense, and/or sell | ||||
| copies of the Software, and to permit persons to whom the Software is | ||||
| furnished to do so, subject to the following conditions: | ||||
|  | ||||
| The above copyright notice and this permission notice shall be included in all | ||||
| copies or substantial portions of the Software. | ||||
|  | ||||
| THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR | ||||
| IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, | ||||
| FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE | ||||
| AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER | ||||
| LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, | ||||
| OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE | ||||
| SOFTWARE. | ||||
							
								
								
									
										138
									
								
								__init__.py
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										138
									
								
								__init__.py
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,138 @@ | ||||
| from .config import Config | ||||
| from .page_parser import PageParser | ||||
| from .db import CachedNotice | ||||
| from .notice import Notice | ||||
| import os | ||||
| from pathlib import Path | ||||
| import aiohttp | ||||
| from nonebot_plugin_apscheduler import scheduler | ||||
| import nonebot | ||||
| from nonebot import on_command, require | ||||
| from nonebot.log import logger | ||||
| from nonebot.rule import Rule | ||||
| from nonebot.adapters.onebot.v11.adapter import Message, MessageSegment | ||||
| from nonebot.adapters.onebot.v11 import Message, MessageSegment, Bot, MessageEvent | ||||
| from nonebot.matcher import Matcher | ||||
| from nonebot.params import CommandArg | ||||
|  | ||||
| require("nonebot_plugin_apscheduler") | ||||
|  | ||||
|  | ||||
| notice_pusher = on_command("csust_notice_pusher", rule=Rule(), priority=5) | ||||
| PACKAGE_PATH = os.path.dirname(os.path.abspath(__file__)) | ||||
| DATA_PATH = Path().absolute() / "data" / "notice_pusher" | ||||
| DB_PATH = DATA_PATH / "cache.db" | ||||
| GLOBAL_CFG = nonebot.get_driver().config | ||||
| CFG = Config.parse_obj(GLOBAL_CFG.dict()) | ||||
|  | ||||
| XGDT_URL = 'https://www.csust.edu.cn/gjxy/xgdt.htm' | ||||
| XFZX_URL = 'https://www.csust.edu.cn/gjxy/xxyfzzx.htm' | ||||
| URL_PREFIX = 'https://www.csust.edu.cn/gjxy/' | ||||
| HEADERS = { | ||||
|     'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/110.0.0.0 Safari/537.36 Edg/110.0.1587.50', | ||||
| } | ||||
|  | ||||
| logger.info('加载数据库文件: ' + str(DB_PATH)) | ||||
| db = CachedNotice(DB_PATH) | ||||
|  | ||||
|  | ||||
| async def check_and_push(): | ||||
|     msg = await auto_check() | ||||
|     await push_all(msg) | ||||
|  | ||||
|  | ||||
| async def auto_check() -> list[str]: | ||||
|     msgs = [] | ||||
|     xgdt_notices = await get_notices(XGDT_URL) | ||||
|     xfzx_notices = await get_notices(XFZX_URL) | ||||
|     xgdt_updates = [] | ||||
|     xfzx_updates = [] | ||||
|  | ||||
|     # 学工动态 | ||||
|     for i, n in enumerate(xgdt_notices): | ||||
|         if db.is_notice_exists(n.id): | ||||
|             continue | ||||
|         full_url = URL_PREFIX + n.url | ||||
|         msg = f'{i+1}. \n标题:{n.title}\n内容预览:{n.content_preview[:40]}\n链接:{full_url}\n\n' | ||||
|         xgdt_updates.append(msg) | ||||
|         db.add_notice(Notice(*n.get_properties())) | ||||
|         logger.info("学工动态更新: " + msg) | ||||
|     # 学发中心 | ||||
|     for i, n in enumerate(xfzx_notices): | ||||
|         if db.is_notice_exists(n.id): | ||||
|             continue | ||||
|         full_url = URL_PREFIX + n.url | ||||
|         msg = f'{i+1}. \n标题:{n.title}\n内容预览:{n.content_preview[:40]}\n链接:{full_url}\n\n' | ||||
|         xfzx_updates.append(msg) | ||||
|         db.add_notice(Notice(*n.get_properties())) | ||||
|         logger.info("学发中心更新: " + msg) | ||||
|  | ||||
|     if xgdt_updates: | ||||
|         msgs.append('学工动态更新:\n') | ||||
|         msgs += xgdt_updates | ||||
|  | ||||
|     if xfzx_updates: | ||||
|         msgs.append('学发中心更新:\n') | ||||
|         msgs += xfzx_updates | ||||
|  | ||||
|     return msgs | ||||
|  | ||||
|  | ||||
| async def get_notices(url: str): | ||||
|     page_content = await get_page(url) | ||||
|     if not page_content: | ||||
|         return | ||||
|  | ||||
|     parser = PageParser(page_content) | ||||
|     notices = parser.get_notices() | ||||
|  | ||||
|     return notices | ||||
|  | ||||
|  | ||||
| async def get_page(url: str) -> str: | ||||
|     """获取页面 | ||||
|  | ||||
|     Raises: | ||||
|         IOError: 页面获取失败 | ||||
|     """ | ||||
|     async with aiohttp.ClientSession() as session: | ||||
|         async with session.get(url=url, headers=HEADERS) as res: | ||||
|             if res.status != 200: | ||||
|                 raise IOError('页面获取失败: Code ' + res.status) | ||||
|             return await res.text() | ||||
|  | ||||
|  | ||||
| async def push_all(msg: str): | ||||
|     for gid in CFG.notice_pusher_enable: | ||||
|         await push_to_group(gid, msg) | ||||
|  | ||||
|  | ||||
| async def push_to_group(groupid: int, msg: str): | ||||
|     bot = nonebot.get_bot() | ||||
|     await bot.send_group_msg(group_id=groupid, message=Message(msg)) | ||||
|  | ||||
|  | ||||
| async def push_error_to_admins(user_id: list[int], msg: str): | ||||
|     bot = nonebot.get_bot() | ||||
|     for u in user_id: | ||||
|         await bot.send_private_msg(user_id=user_id, message=Message(msg)) | ||||
|  | ||||
| scheduler.add_job( | ||||
|     check_and_push, | ||||
|     'cron', | ||||
|     hour=9, | ||||
|     minute=0, | ||||
|     second=0, | ||||
|     id='check_notice_and_push' | ||||
| ) | ||||
|  | ||||
|  | ||||
| @notice_pusher.handle() | ||||
| async def handle_pusher(matcher: Matcher, event: MessageEvent, arg: Message = CommandArg()): | ||||
|     try: | ||||
|         msg = await auto_check() | ||||
|     except IOError as e: | ||||
|         await push_error_to_admins(GLOBAL_CFG.superusers, str(e)) | ||||
|         return | ||||
|  | ||||
|     await matcher.finish(msg) | ||||
							
								
								
									
										6
									
								
								config.py
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										6
									
								
								config.py
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,6 @@ | ||||
| from typing import List | ||||
| from pydantic import BaseModel, Extra | ||||
|  | ||||
|  | ||||
| class Config(BaseModel, extra=Extra.ignore): | ||||
|     notice_pusher_enable: List = [] | ||||
							
								
								
									
										69
									
								
								db.py
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										69
									
								
								db.py
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,69 @@ | ||||
| import sqlite3 | ||||
| import os | ||||
| from .notice import Notice | ||||
| from typing import Any | ||||
| from nonebot.log import logger | ||||
|  | ||||
|  | ||||
| class CachedNotice(object): | ||||
|     def __init__(self, db_path: str) -> None: | ||||
|         self.engine = None | ||||
|         self.db_path = db_path | ||||
|         self.connect() | ||||
|         self.init_table() | ||||
|  | ||||
|     def __del__(self): | ||||
|         self.engine.close() | ||||
|  | ||||
|     def connect(self): | ||||
|         self.engine = sqlite3.connect(self.db_path) | ||||
|  | ||||
|     def init_table(self): | ||||
|         cur = self.engine.cursor() | ||||
|         cur.execute("""CREATE TABLE IF NOT EXISTS notices ( | ||||
|     id BIGINT PRIMARY KEY, | ||||
|     url TEXT NOT NULL DEFAULT '', | ||||
|     title TEXT NOT NULL DEFAULT '', | ||||
|     content_preview TEXT NOT NULL DEFAULT '', | ||||
|     publish_date DATE NOT NULL DEFAULT '', | ||||
|     content TEXT NOT NULL DEFAULT '', | ||||
|     source TEXT NOT NULL DEFAULT '' | ||||
| );""") | ||||
|         self.engine.commit() | ||||
|         cur.close() | ||||
|  | ||||
|     def get_notice_by_id(self, id: int) -> Notice: | ||||
|         cur = self.engine.cursor() | ||||
|         cur.execute( | ||||
|             f"""SELECT id, url, title, content_preview, publish_date, content, source FROM notices WHERE id = {id}""") | ||||
|         data = cur.fetchone() | ||||
|         cur.close() | ||||
|  | ||||
|         if data: | ||||
|             return Notice(*data) | ||||
|         else: | ||||
|             return None | ||||
|  | ||||
|     def is_notice_exists(self, notice_id: int) -> bool: | ||||
|         res = self.get_notice_by_id(notice_id) | ||||
|         if res: | ||||
|             return True | ||||
|         else: | ||||
|             return False | ||||
|  | ||||
|     def add_notice(self, data: Notice): | ||||
|         if self.is_notice_exists(data.id): | ||||
|             return | ||||
|  | ||||
|         cur = self.engine.cursor() | ||||
|         sql = """INSERT INTO notices (id, url, title, content_preview, publish_date, content, source) | ||||
| VALUES ({}, '{}', '{}', '{}', '{}', '{}', '{}');""".format(*map(quote_escape, data.get_properties())) | ||||
|         cur.execute(sql) | ||||
|         self.engine.commit() | ||||
|         cur.close() | ||||
|  | ||||
|  | ||||
| def quote_escape(x: str | Any): | ||||
|     if isinstance(x, str): | ||||
|         x = x.replace("'", "''") | ||||
|     return x | ||||
							
								
								
									
										58
									
								
								entity_generator.py
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										58
									
								
								entity_generator.py
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,58 @@ | ||||
| def main(pstr: str, defaults: dict): | ||||
|     properties = pstr.rsplit(',') | ||||
|     result = '' | ||||
|  | ||||
|     arg_init_head = """    def __init__(self, {}):\n""" | ||||
|     arg_init_line = """        self.__{0} = {0}\n""" | ||||
|     noarg_init_head = """    def __init__(self):\n""" | ||||
|     noarg_init_line = """        self.__{0} = {1}\n""" | ||||
|     getter = """    @property | ||||
|     def {0}(self): | ||||
|         return self.__{0} | ||||
| """ | ||||
|     setter = """    @{0}.setter | ||||
|     def {0}(self, value): | ||||
|         if value == None: | ||||
|             self.__{0} = '' | ||||
|         self.__{0} = value | ||||
| """ | ||||
|  | ||||
|     # 有参构造器 | ||||
|     result += arg_init_head.format(', '.join(properties)) | ||||
|     for p in properties: | ||||
|         result += arg_init_line.format(p) | ||||
|  | ||||
|     # 无参构造器 | ||||
|     result += '\n' | ||||
|     result += noarg_init_head | ||||
|     for p in properties: | ||||
|         if p in defaults: | ||||
|             default = str(defaults[p]) | ||||
|         else: | ||||
|             default = "''" | ||||
|         result += noarg_init_line.format(p, default) | ||||
|          | ||||
|     # property | ||||
|     for p in properties: | ||||
|         result += '\n' | ||||
|         result += getter.format(p) | ||||
|         result += '\n' | ||||
|         result += setter.format(p) | ||||
|      | ||||
|     # get_properties() | ||||
|     result += '\n' | ||||
|     result += '    def get_properties(self) -> list:\n' | ||||
|     _ret = list(map(lambda x: 'self.' + x, properties)) | ||||
|     _ret = ', '.join(_ret) | ||||
|     result += '        return {}'.format(_ret) | ||||
|      | ||||
|     # tostring() | ||||
|          | ||||
|  | ||||
|     print(result) | ||||
|  | ||||
|  | ||||
| if __name__ == '__main__': | ||||
|     properties = 'id,url,title,content_review,publish_date,content,source' | ||||
|     defaults = {'publish_date': None, 'id': 0} | ||||
|     main(properties, defaults) | ||||
							
								
								
									
										90
									
								
								notice.py
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										90
									
								
								notice.py
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,90 @@ | ||||
| from datetime import date, datetime | ||||
| from typing import Any | ||||
|  | ||||
|  | ||||
| class Notice(object): | ||||
|     """通知实体类 | ||||
|     """ | ||||
|  | ||||
|     def __init__(self, id=0, url='', title='', content_preview='', publish_date: date=None, content='', source=''): | ||||
|         self.__id = id | ||||
|         self.__url = url | ||||
|         self.__title = title | ||||
|         self.__content_preview = content_preview | ||||
|         self.publish_date = publish_date | ||||
|         self.__content = content | ||||
|         self.__source = source | ||||
|  | ||||
|     @property | ||||
|     def id(self): | ||||
|         return self.__id | ||||
|  | ||||
|     @id.setter | ||||
|     def id(self, value): | ||||
|         if value == None: | ||||
|             self.__id = 0 | ||||
|         self.__id = value | ||||
|  | ||||
|     @property | ||||
|     def url(self): | ||||
|         return self.__url | ||||
|  | ||||
|     @url.setter | ||||
|     def url(self, value): | ||||
|         if value == None: | ||||
|             self.__url = '' | ||||
|         self.__url = value | ||||
|  | ||||
|     @property | ||||
|     def title(self): | ||||
|         return self.__title | ||||
|  | ||||
|     @title.setter | ||||
|     def title(self, value): | ||||
|         if value == None: | ||||
|             self.__title = '' | ||||
|         self.__title = value | ||||
|  | ||||
|     @property | ||||
|     def content_preview(self): | ||||
|         return self.__content_preview | ||||
|  | ||||
|     @content_preview.setter | ||||
|     def content_preview(self, value): | ||||
|         if value == None: | ||||
|             value = '' | ||||
|         self.__content_preview = value | ||||
|  | ||||
|     @property | ||||
|     def publish_date(self): | ||||
|         return self.__publish_date.strftime("%Y-%m-%d") | ||||
|  | ||||
|     @publish_date.setter | ||||
|     def publish_date(self, value: date): | ||||
|         if isinstance(value, str): | ||||
|             dt = datetime.strptime(value, '%Y-%m-%d') | ||||
|             value = dt.date() | ||||
|         self.__publish_date = value | ||||
|  | ||||
|     @property | ||||
|     def content(self): | ||||
|         return self.__content | ||||
|  | ||||
|     @content.setter | ||||
|     def content(self, value): | ||||
|         if value == None: | ||||
|             self.__content = '' | ||||
|         self.__content = value | ||||
|  | ||||
|     @property | ||||
|     def source(self): | ||||
|         return self.__source | ||||
|  | ||||
|     @source.setter | ||||
|     def source(self, value): | ||||
|         if value == None: | ||||
|             self.__source = '' | ||||
|         self.__source = value | ||||
|  | ||||
|     def get_properties(self) -> list: | ||||
|         return self.id, self.url, self.title, self.content_preview, self.publish_date, self.content, self.source | ||||
							
								
								
									
										66
									
								
								page_parser.py
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										66
									
								
								page_parser.py
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,66 @@ | ||||
| from lxml import etree | ||||
| import re | ||||
| from datetime import date | ||||
| try: | ||||
|     import ujson as json | ||||
| except: | ||||
|     import json | ||||
|  | ||||
| try: | ||||
|     from .notice import Notice | ||||
| except ImportError: | ||||
|     from notice import Notice | ||||
|  | ||||
|  | ||||
| class PageParser(object): | ||||
|     """解析器类 | ||||
|     """ | ||||
|     REG = re.compile(r'info/\d+/(\d+).htm', re.S) | ||||
|  | ||||
|     def __init__(self, page: str) -> None: | ||||
|         self._page_content = page | ||||
|         self._notices = [] | ||||
|         self._parse() | ||||
|  | ||||
|     def _parse(self): | ||||
|         """解析页面 | ||||
|         """ | ||||
|         root = etree.HTML(self._page_content) | ||||
|         elements = root.xpath("//ul[@class='secList pageList']/li") | ||||
|         for e in elements: | ||||
|             notice = Notice() | ||||
|             notice.title = e.xpath("div[@class='r']//a/text()")[0] | ||||
|             url = str(e.xpath("div[@class='r']//a/@href")[0]) | ||||
|             notice.url = url | ||||
|             notice.id = self._get_id(url) | ||||
|             content_review = e.xpath( | ||||
|                 "div[@class='r']/div[@class='intro']/text()")[0] | ||||
|             content_review = content_review.replace('\\n', '').strip() | ||||
|             notice.content_preview = content_review | ||||
|             year, month = e.xpath("div[@class='l']/text()")[0].split('-') | ||||
|             day = e.xpath("div[@class='l']/span/text()")[0] | ||||
|             notice.publish_date = date( | ||||
|                 year=int(year), month=int(month), day=int(day)) | ||||
|             self._notices.append(notice) | ||||
|  | ||||
|     def _get_id(self, url: str) -> int: | ||||
|         res = self.REG.findall(url)[0] | ||||
|         return int(res) | ||||
|      | ||||
|     def get_notices(self) -> list[Notice]: | ||||
|         return self._notices | ||||
|  | ||||
|     # def _parse_date(self, date_str: str) -> date: | ||||
|     #     pass | ||||
|  | ||||
|     # def test(self): | ||||
|     #     root = etree.HTML(self._page_content) | ||||
|     #     elements = root.xpath("//ul[@class='secList pageList']/li") | ||||
|     #     e = elements[0] | ||||
|     #     print(type(e.xpath("div[@class='r']//a/@href")[0])) | ||||
|  | ||||
|  | ||||
| if __name__ == "__main__": | ||||
|     with open('sample.html', encoding='utf-8') as fp: | ||||
|         parser = PageParser(fp.read()) | ||||
|         parser.test() | ||||
							
								
								
									
										648
									
								
								sample.html
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										648
									
								
								sample.html
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,648 @@ | ||||
| <!DOCTYPE html | ||||
|     PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> | ||||
| <html xmlns="http://www.w3.org/1999/xhtml"> | ||||
|  | ||||
| <head> | ||||
|     <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> | ||||
|     <title>学工动态-国际工学院</title> | ||||
|     <META Name="keywords" Content="国际工学院,学工动态" /> | ||||
|  | ||||
|  | ||||
|     <meta name="description" content="长沙理工大学·国际学院" /> | ||||
|     <meta http-equiv="pragma" content="no-cache"> | ||||
|     <meta http-equiv="cache-control" content="no-cache"> | ||||
|     <link href="dfiles/3935/pub/gjxy/images/gjxycss.jpg.css" type="text/css" rel="stylesheet"> | ||||
|     <!-- jQuery (necessary for Bootstrap's JavaScript plugins) --> | ||||
|     <script src="dfiles/3935/pub/gjxy/images/jquery.min.js"> | ||||
|  | ||||
|     </script> | ||||
|     <!-- Custom Theme files --> | ||||
|     <!-- for bootstrap working --> | ||||
|     <script type="text/javascript" src="dfiles/3935/pub/gjxy/images/bootstrap.js"> | ||||
|  | ||||
|     </script> | ||||
|     <!-- //for bootstrap working --> | ||||
|     <script src="dfiles/3935/pub/gjxy/images/responsiveslides.min.js"> | ||||
|  | ||||
|     </script> | ||||
|     <script type="text/javascript" src="dfiles/3935/pub/gjxy/images/move-top.js"> | ||||
|  | ||||
|     </script> | ||||
|     <script type="text/javascript" src="dfiles/3935/pub/gjxy/images/easing.js"> | ||||
|  | ||||
|     </script> | ||||
|     <!--/script--> | ||||
|     <script type="text/javascript"> | ||||
|  | ||||
|  | ||||
|         jQuery(document).ready(function ($) { | ||||
|             $(".scroll").click(function (event) { | ||||
|                 event.preventDefault(); | ||||
|                 $('html,body').animate({ scrollTop: $(this.hash).offset().top }, 900); | ||||
|             }); | ||||
|         }); | ||||
|     </script> | ||||
|     <script type="text/javascript" src="dfiles/3935/pub/gjxy/images/menujs.js"> | ||||
|  | ||||
|     </script> | ||||
|     <!--Announced by Visual SiteBuilder 9--> | ||||
|     <link rel="stylesheet" type="text/css" href="_sitegray/_sitegray_d.css" /> | ||||
|     <script language="javascript" src="_sitegray/_sitegray.js"></script> | ||||
|     <!-- CustomerNO:7765626265723230747a475452545742000200014751 --> | ||||
|     <link rel="stylesheet" type="text/css" href="lby.vsb.css" /> | ||||
|     <script type="text/javascript" src="/system/resource/js/counter.js"></script> | ||||
|     <script type="text/javascript">_jsq_(1285, '/lby.jsp', -1, 1390296022)</script> | ||||
| </head> | ||||
|  | ||||
| <body> | ||||
|     <!-- header-section-starts-here --> | ||||
|     <div class="header" id="movetop"> | ||||
|         <div class="container"> | ||||
|             <div class="header-top"> | ||||
|                 <div class="logo left"><a href="sy.htm" target=""><img src="dfiles/3935/pub/gjxy/images/logo.png"></a> | ||||
|                 </div> | ||||
|                 <div class="social right"><a href="http://www.csust.edu.cn/gjjlc/index.htm" target="_blank">国际交流处</a>|<a | ||||
|                         href="mailto:lxskq2011@163.com">学院信箱</a>|<a href="ywbwz/Home.htm" target="">ENGLISH</a></div> | ||||
|                 <div class="search right"> | ||||
|                     <script type="text/javascript"> | ||||
|                         function _nl_ys_check() { | ||||
|  | ||||
|                             var keyword = document.getElementById('showkeycode129384').value; | ||||
|                             if (keyword == null || keyword == "") { | ||||
|                                 alert("请输入你要检索的内容!"); | ||||
|                                 return false; | ||||
|                             } | ||||
|                             if (window.toFF == 1) { | ||||
|                                 document.getElementById("lucenenewssearchkey129384").value = Simplized(keyword); | ||||
|                             } else { | ||||
|                                 document.getElementById("lucenenewssearchkey129384").value = keyword; | ||||
|                             } | ||||
|                             var base64 = new Base64(); | ||||
|                             document.getElementById("lucenenewssearchkey129384").value = base64.encode(document.getElementById("lucenenewssearchkey129384").value); | ||||
|                             new VsbFormFunc().disableAutoEnable(document.getElementById("showkeycode129384")); | ||||
|                             return true; | ||||
|                         }  | ||||
|                     </script> | ||||
|                     <form action="copy_1_copy_3_lby.jsp?wbtreeid=1285" method="post" id="au0a" name="au0a" | ||||
|                         onsubmit="return _nl_ys_check()"><input type="hidden" id="lucenenewssearchkey129384" | ||||
|                             name="lucenenewssearchkey" value=""><input type="hidden" id="_lucenesearchtype129384" | ||||
|                             name="_lucenesearchtype" value="1"><input type="hidden" id="searchScope129384" | ||||
|                             name="searchScope" value="0"> | ||||
|                         <input name="showkeycode" id="showkeycode129384" class="search_text" value="Search..." | ||||
|                             onFocus="if(value==defaultValue){value='';this.style.color='#999'}" | ||||
|                             onBlur="if(!value){value=defaultValue;this.style.color='#999'}"><input type="submit" | ||||
|                             class="search_bnt" value="" /> | ||||
|                     </form> | ||||
|                     <script language="javascript" src="/system/resource/js/base64.js"></script> | ||||
|                     <script language="javascript" src="/system/resource/js/formfunc.js"></script> | ||||
|                 </div> | ||||
|                 <div class="clearfix"></div> | ||||
|             </div> | ||||
|             <!-- navigation --> | ||||
|             <div class="navigation"> | ||||
|                 <ul class="nav menu"> | ||||
|                     <li class="menu_1"><a href="index.htm">学院首页</a> | ||||
|                     </li> | ||||
|                     <li class="menu_2"><a href="xygk.htm">学院概况</a> | ||||
|                         <dl class="subnav"> | ||||
|                             <dt><a href="xygk/xyjj.htm">学院简介</a></dt> | ||||
|                             <dt><a href="xygk/xrld.htm">现任领导</a></dt> | ||||
|                             <dt><a href="xygk/jgsz.htm">机构设置</a></dt> | ||||
|                             <dt><a href="xygk/lxwm.htm">联系我们</a></dt> | ||||
|                         </dl> | ||||
|                     </li> | ||||
|                     <li class="menu_3"><a href="hzbx.htm">合作办学</a> | ||||
|                         <dl class="subnav"> | ||||
|                             <dt><a href="hzbx/tmgczy.htm">土木工程专业</a></dt> | ||||
|                             <dt><a href="hzbx/dqgcjqzdhzy.htm">电气工程及其自动化专业</a></dt> | ||||
|                             <dt><a href="hzbx/jxsjzzjqzdh.htm">机械设计制造及其自动化</a></dt> | ||||
|                         </dl> | ||||
|                     </li> | ||||
|                     <li class="menu_4"><a href="jgbgz.htm">教改班工作</a> | ||||
|                         <dl class="subnav"> | ||||
|                             <dt><a href="jgbgz/bjjj.htm">班级简介</a></dt> | ||||
|                             <dt><a href="jgbgz/gzzd.htm">规章制度</a></dt> | ||||
|                             <dt><a href="jgbgz/xxdt.htm">学习动态</a></dt> | ||||
|                         </dl> | ||||
|                     </li> | ||||
|                     <li class="menu_5"><a href="xsgz.htm">学生工作</a> | ||||
|                         <dl class="subnav"> | ||||
|                             <dt><a href="xsgz/xsdj.htm">学生党建</a></dt> | ||||
|                             <dt><a href="xsgz/xfjs.htm">学风建设</a></dt> | ||||
|                             <dt><a href="xsgz/rcgl.htm">日常管理</a></dt> | ||||
|                             <dt><a href="xsgz/txgz.htm">团学工作</a></dt> | ||||
|                             <dt><a href="xsgz/xljk.htm">心理健康</a></dt> | ||||
|                             <dt><a href="xsgz/zsjy.htm">招生就业</a></dt> | ||||
|                             <dt><a href="xsgz/rybd.htm">荣誉榜单</a></dt> | ||||
|                         </dl> | ||||
|                     </li> | ||||
|                     <li class="menu_6"><a href="lxsjy.htm">留学生教育</a> | ||||
|                         <dl class="subnav"> | ||||
|                             <dt><a href="lxsjy/gzzd.htm">规章制度</a></dt> | ||||
|                             <dt><a href="lxsjy/zsgz.htm">招生工作</a></dt> | ||||
|                             <dt><a href="lxsjy/jypy.htm">教育培养</a></dt> | ||||
|                             <dt><a href="lxsjy/xysh.htm">校园生活</a></dt> | ||||
|                             <dt><a href="lxsjy/xshd.htm">学生活动</a></dt> | ||||
|                             <dt><a href="lxsjy/xytd.htm">校友天地</a></dt> | ||||
|                             <dt><a href="lxsjy/mtjj.htm">媒体聚焦</a></dt> | ||||
|                             <dt><a href="lxsjy/HSKkdgz.htm">HSK考点工作</a></dt> | ||||
|                         </dl> | ||||
|                     </li> | ||||
|                     <li class="menu_7"><a href="dqgz.htm">党群工作</a> | ||||
|                         <dl class="subnav"> | ||||
|                             <dt><a href="dqgz/zzjg.htm">组织机构</a></dt> | ||||
|                             <dt><a href="dqgz/gzzd.htm">规章制度</a></dt> | ||||
|                             <dt><a href="dqgz/djdt.htm">党建动态</a></dt> | ||||
|                             <dt><a href="dqgz/dsxxjyzt.htm">党史学习教育专题</a></dt> | ||||
|                             <dt><a href="dqgz/dyfc.htm">党员风采</a></dt> | ||||
|                             <dt><a href="dqgz/ghgz.htm">工会工作</a></dt> | ||||
|                         </dl> | ||||
|                     </li> | ||||
|                     <li class="menu_8"><a href="pxyjs.htm">培训与竞赛</a> | ||||
|                         <dl class="subnav"> | ||||
|                             <dt><a href="pxyjs/gzzd.htm">规章制度</a></dt> | ||||
|                             <dt><a href="pxyjs/xkjs.htm">学科竞赛</a></dt> | ||||
|                             <dt><a href="pxyjs/czkt.htm">成长课堂</a></dt> | ||||
|                             <dt><a href="pxyjs/swpx.htm">涉外培训</a></dt> | ||||
|                         </dl> | ||||
|                     </li> | ||||
|                 </ul> | ||||
|                 <div class="clearfix"></div> | ||||
|             </div> | ||||
|             <!-- //navigation --> | ||||
|         </div> | ||||
|     </div> | ||||
|     <!-- header-section-ends-here --> | ||||
|     <div class="slider"> | ||||
|         <ul class="rslides" id="slider1"> | ||||
|             <li><img src="dfiles/3935/pub/gjxy/images/show_pho1.jpg"></li> | ||||
|         </ul> | ||||
|     </div> | ||||
|     <div class="content"> | ||||
|         <!-- Our-staff-starts --> | ||||
|         <div class="show"> | ||||
|             <div class="container"> | ||||
|                 <div class="show-head text-center"> | ||||
|                     <header> | ||||
|                         <h3> | ||||
|  | ||||
|  | ||||
|  | ||||
|                             学工动态</h3> | ||||
|                     </header> | ||||
|                 </div> | ||||
|                 <div class="show-grids"> | ||||
|                     <div class="col-md-3 pl30 left"> | ||||
|                         <ul class="menu_list"></ul> | ||||
|                     </div> | ||||
|                     <div class="col-md-5 pr30 right"> | ||||
|                         <div class="show_title"> | ||||
|                             <h3> | ||||
|  | ||||
|  | ||||
|  | ||||
|                                 学工动态</h3> | ||||
|                         </div> | ||||
|                         <div class="tit-content"> | ||||
|  | ||||
|                             <script language="javascript" src="/system/resource/js/centerCutImg.js"></script> | ||||
|                             <script language="javascript" src="/system/resource/js/dynclicks.js"></script> | ||||
|                             <script language="javascript" src="/system/resource/js/ajax.js"></script> | ||||
|                             <ul class="secList pageList"> | ||||
|                                 <li id="line_u5_0"> | ||||
|                                     <div class="r"> | ||||
|                                         <dt><a href="info/1285/5152.htm" | ||||
|                                                 title="国际工学院学生党支部开展2022年度组织生活会">国际工学院学生党支部开展2022年度组织生活会</a></dt> | ||||
|                                         <div class="intro"> | ||||
|                                             近日,国际工学院各学生党支部在新能源大楼一栋陆续开展2022年度组织生活会。会议由各党支部书记主持,国际工学院党总支书记王学成,院长吴迪龙,副书记兼副院长乔法光,党总支委员... | ||||
|                                         </div> | ||||
|                                     </div> | ||||
|                                     <div class="l">2023-03<br /><span>21</span></div> | ||||
|                                     <div class="clearfix"></div> | ||||
|                                 </li> | ||||
|                                 <li id="line_u5_1"> | ||||
|                                     <div class="r"> | ||||
|                                         <dt><a href="info/1285/5146.htm" | ||||
|                                                 title="总分第二!我院土木教改1901班获校2022年度“示范班集体”!">总分第二!我院土木教改1901班获校2022年度“示范班集体”!</a> | ||||
|                                         </dt> | ||||
|                                         <div class="intro"> | ||||
|                                             为进一步加强班风、学风和校风建设,发挥典型示范引领作用,3月14日下午,我校2022年“示范班集体”决选在云塘校区图书馆报告厅举行。其中,我院土木教改1901班以总分第二的优秀成... | ||||
|                                         </div> | ||||
|                                     </div> | ||||
|                                     <div class="l">2023-03<br /><span>15</span></div> | ||||
|                                     <div class="clearfix"></div> | ||||
|                                 </li> | ||||
|                                 <li id="line_u5_2"> | ||||
|                                     <div class="r"> | ||||
|                                         <dt><a href="info/1285/5141.htm" | ||||
|                                                 title="春暖花开,奋斗当时--国际工学院召开毕(就)业工作推进会">春暖花开,奋斗当时--国际工学院召开毕(就)业工作推进会</a> | ||||
|                                         </dt> | ||||
|                                         <div class="intro"> | ||||
|                                             3月14日下午,国际工学院在新能源大楼1栋416会议室召开2023届毕(就)业工作推进会暨毕业年级班主任大会。院党总支书记王学成,副书记兼副院长乔法光,学工办、教务办以及2023届毕业生... | ||||
|                                         </div> | ||||
|                                     </div> | ||||
|                                     <div class="l">2023-03<br /><span>15</span></div> | ||||
|                                     <div class="clearfix"></div> | ||||
|                                 </li> | ||||
|                                 <li id="line_u5_3"> | ||||
|                                     <div class="r"> | ||||
|                                         <dt><a href="info/1285/5128.htm" | ||||
|                                                 title="留学生争当“洋雷锋” ——国际工学院、交通学院联合开展青马工程暨“书写新时代雷锋故事”主题分享会">留学生争当“洋雷锋” | ||||
|                                                 ——国际工学院、交通学院联合开展青马...</a></dt> | ||||
|                                         <div class="intro"> | ||||
|                                             为了纪念毛泽东等老一辈革命家为雷锋同志题词60周年,3月6日,交通学院、国际工学院在文科楼A200联合开展青马工程暨“书写新时代雷锋故事”主题分享会。206名青年学子齐聚一堂,共话... | ||||
|                                         </div> | ||||
|                                     </div> | ||||
|                                     <div class="l">2023-03<br /><span>06</span></div> | ||||
|                                     <div class="clearfix"></div> | ||||
|                                 </li> | ||||
|                                 <li id="line_u5_4"> | ||||
|                                     <div class="r"> | ||||
|                                         <dt><a href="info/1285/5123.htm" | ||||
|                                                 title="“书写新时代雷锋故事”——国际学子走进社区话雷锋学雷锋">“书写新时代雷锋故事”——国际学子走进社区话雷锋学雷锋</a></dt> | ||||
|                                         <div class="intro"> | ||||
|                                             三月春风暖人心,雷锋精神代代传。3月3日,长沙理工大学国际工学院学生党员代表,携手学院来华留学生代表,深入长沙市天心区暮云街道卢浮社区,开展中外青年学生进社区学雷锋志愿服务... | ||||
|                                         </div> | ||||
|                                     </div> | ||||
|                                     <div class="l">2023-03<br /><span>06</span></div> | ||||
|                                     <div class="clearfix"></div> | ||||
|                                 </li> | ||||
|                                 <li id="line_u5_5"> | ||||
|                                     <div class="r"> | ||||
|                                         <dt><a href="info/1285/5115.htm" | ||||
|                                                 title="“书写新时代雷锋故事”——国际工学院学生党员“朋辈小课堂”助力学业帮扶">“书写新时代雷锋故事”——国际工学院学生党员“朋辈小课堂...</a> | ||||
|                                         </dt> | ||||
|                                         <div class="intro"> | ||||
|                                             为提升学业帮扶实效,国际工学院的学生党员们在新学期开学第一周主动开设“朋辈小课堂”,开展系列朋辈学业帮扶活动,帮助学习困难同学完成学业。本次党员“朋辈小课堂”分8个场次开... | ||||
|                                         </div> | ||||
|                                     </div> | ||||
|                                     <div class="l">2023-03<br /><span>04</span></div> | ||||
|                                     <div class="clearfix"></div> | ||||
|                                 </li> | ||||
|                                 <li id="line_u5_6"> | ||||
|                                     <div class="r"> | ||||
|                                         <dt><a href="info/1285/5114.htm" | ||||
|                                                 title="“职”等你来,如沐春风--国际工学院举办就业指导讲座">“职”等你来,如沐春风--国际工学院举办就业指导讲座</a></dt> | ||||
|                                         <div class="intro"> | ||||
|                                             为帮助毕业生把握春季招聘黄金期,3月3日晚,国际工学院在新能源大楼1栋402报告厅举办了2023届毕业生就业指导专题讲座。讲座邀请了中铁建电气化局四公司人力资源部曾妮作为主讲嘉宾,... | ||||
|                                         </div> | ||||
|                                     </div> | ||||
|                                     <div class="l">2023-03<br /><span>04</span></div> | ||||
|                                     <div class="clearfix"></div> | ||||
|                                 </li> | ||||
|                                 <li id="line_u5_7"> | ||||
|                                     <div class="r"> | ||||
|                                         <dt><a href="info/1285/5126.htm" | ||||
|                                                 title="春风浩荡满目新,扬帆奋进正当时——国际工学院召开2022级新学期班级学生干部大会">春风浩荡满目新,扬帆奋进正当时——国际工学院召开2022级新...</a> | ||||
|                                         </dt> | ||||
|                                         <div class="intro"> | ||||
|                                             3月3日中午,国际工学院2022级新学期班级学生干部大会在云塘校区新能源大楼1栋4楼会议室召开。学院党总支副书记兼副院长乔法光、2022级全体辅导员和班级学生干部参会。本次会议由年... | ||||
|                                         </div> | ||||
|                                     </div> | ||||
|                                     <div class="l">2023-03<br /><span>04</span></div> | ||||
|                                     <div class="clearfix"></div> | ||||
|                                 </li> | ||||
|                                 <li id="line_u5_8"> | ||||
|                                     <div class="r"> | ||||
|                                         <dt><a href="info/1285/5109.htm" | ||||
|                                                 title="“规范停车,文明出行”——国际工学院开展校内学雷锋志愿服务">“规范停车,文明出行”——国际工学院开展校内学雷锋志愿服务</a> | ||||
|                                         </dt> | ||||
|                                         <div class="intro"> | ||||
|                                             为弘扬践行雷锋精神,纪念毛泽东等老一辈革命家为雷锋同志题词60周年,用实际行动书写新时代雷锋故事,3月1日中午,长沙理工大学国际工学院开展了“书写新时代雷锋故事——规范停车,... | ||||
|                                         </div> | ||||
|                                     </div> | ||||
|                                     <div class="l">2023-03<br /><span>01</span></div> | ||||
|                                     <div class="clearfix"></div> | ||||
|                                 </li> | ||||
|                                 <li id="line_u5_9"> | ||||
|                                     <div class="r"> | ||||
|                                         <dt><a href="info/1285/5082.htm" | ||||
|                                                 title="“启航新征程,青春正当时”——国际工学院领导老师走访学生宿舍">“启航新征程,青春正当时”——国际工学院领导老师走访学生宿舍</a> | ||||
|                                         </dt> | ||||
|                                         <div class="intro"> | ||||
|                                             新学期伊始,为更好地了解学生学习生活情况,2月21日下午,国际工学院党总支书记王学成、院长吴迪龙、副书记兼副院长乔法光,以及学工办、留工办全体辅导员深入学生宿舍,看望返校学生... | ||||
|                                         </div> | ||||
|                                     </div> | ||||
|                                     <div class="l">2023-02<br /><span>22</span></div> | ||||
|                                     <div class="clearfix"></div> | ||||
|                                 </li> | ||||
|                                 <li id="line_u5_10"> | ||||
|                                     <div class="r"> | ||||
|                                         <dt><a href="info/1285/5064.htm" | ||||
|                                                 title="国际工学院召开2023年春季学期第一次主题班会">国际工学院召开2023年春季学期第一次主题班会</a></dt> | ||||
|                                         <div class="intro"> | ||||
|                                             2023年2月19日晚,国际工学院组织召开“启航新征程,青春正当时”为主题的新学期第一次班会。学院辅导员、各班班主任、全体学生分班级参加此次班会,班会由各班班长主持。首先,各班... | ||||
|                                         </div> | ||||
|                                     </div> | ||||
|                                     <div class="l">2023-02<br /><span>20</span></div> | ||||
|                                     <div class="clearfix"></div> | ||||
|                                 </li> | ||||
|                                 <li id="line_u5_11"> | ||||
|                                     <div class="r"> | ||||
|                                         <dt><a href="info/1285/5050.htm" | ||||
|                                                 title="国际工学院成功举办2023年心理健康教育讲座暨心理健康教育队伍培训">国际工学院成功举办2023年心理健康教育讲座暨心理健康教育队...</a> | ||||
|                                         </dt> | ||||
|                                         <div class="intro"> | ||||
|                                             ---自己的心理咨询师--大学生自我成长和心理调适2月13日晚,国际工学院成功举办“做自己的心理咨询师--大学生自我成长和心理调适”心理讲座暨心理健康教育队伍培训,本次讲座由教育部... | ||||
|                                         </div> | ||||
|                                     </div> | ||||
|                                     <div class="l">2023-02<br /><span>18</span></div> | ||||
|                                     <div class="clearfix"></div> | ||||
|                                 </li> | ||||
|                             </ul> | ||||
|                             <div class="clearfix"></div> | ||||
|                             <div class="pageChanger"><INPUT TYPE="hidden" NAME="actiontype" VALUE=""><input | ||||
|                                     type="hidden" name="_scode_" value="1679471134155"><input type="hidden" | ||||
|                                     name="urltype" value="tree.TreeTempUrl"><input type="hidden" name="wbtreeid" | ||||
|                                     value="1285"><input type="hidden" name="outFlag" value="false"> | ||||
|                                 <style type="text/css"> | ||||
|                                     .headStyle14mtowhg3z, | ||||
|                                     .headStyle14mtowhg3z td, | ||||
|                                     .headStyle14mtowhg3z div { | ||||
|                                         font-size: 12px; | ||||
|                                         font-family: 宋体; | ||||
|                                         color: #000000; | ||||
|                                         margin-left: auto; | ||||
|                                         margin-right: auto; | ||||
|                                         line-height: 14px; | ||||
|                                     } | ||||
|  | ||||
|                                     .defaultButtonStyle { | ||||
|                                         font-size: 12px; | ||||
|                                         font-family: 宋体; | ||||
|                                         height: 20px; | ||||
|                                         color: #000000; | ||||
|                                         BORDER: #AFD5F5 1px solid; | ||||
|                                         margin: 0px; | ||||
|                                         padding: 0px; | ||||
|                                         FILTER: progid:DXImageTransform.Microsoft.Gradient(GradientType=0, StartColorStr=#ffffff, EndColorStr=#BDDBF7); | ||||
|                                         CURSOR: pointer; | ||||
|                                         line-height: 14px; | ||||
|                                         background: -webkit-gradient(linear, 0 0, 0 100%, from(#ffffff), to(#BDDBF7)); | ||||
|                                         background: -moz-linear-gradient(top, #ffffff, #BDDBF7); | ||||
|                                         background: -ms-linear-gradient(top, #ffffff 0%, #bddbf7 100%); | ||||
|                                     } | ||||
|  | ||||
|                                     .defaultinputStyle { | ||||
|                                         font-size: 12px; | ||||
|                                         font-family: 宋体; | ||||
|                                         height: 20px; | ||||
|                                         border: 1px solid #AFD5F5; | ||||
|                                         line-height: 14px; | ||||
|                                     } | ||||
|  | ||||
|                                     .colHeader { | ||||
|                                         font-size: 12px; | ||||
|                                         font-family: 宋体; | ||||
|                                         line-height: 14px; | ||||
|                                     } | ||||
|  | ||||
|                                     .headStyle14mtowhg3z a, | ||||
|                                     .pageList .this-page { | ||||
|                                         font-size: 12px; | ||||
|                                         font-family: 宋体; | ||||
|                                         display: inline-block; | ||||
|                                         height: 14px; | ||||
|                                         padding: 2px 4px; | ||||
|                                         border: solid 1px #AFD5F5; | ||||
|                                         background: #fff; | ||||
|                                         text-decoration: none; | ||||
|                                         MARGIN-RIGHT: 1px; | ||||
|                                         line-height: 14px; | ||||
|                                     } | ||||
|  | ||||
|                                     .headStyle14mtowhg3z a:visited { | ||||
|                                         font-size: 12px; | ||||
|                                         font-family: 宋体; | ||||
|                                         color: #000000; | ||||
|                                         text-decoration: none; | ||||
|                                         line-height: 14px; | ||||
|                                     } | ||||
|  | ||||
|                                     .headStyle14mtowhg3z .PrevDisabled { | ||||
|                                         font-size: 12px; | ||||
|                                         font-family: 宋体; | ||||
|                                         display: inline-block; | ||||
|                                         height: 14px; | ||||
|                                         margin-right: 3px; | ||||
|                                         padding: 2px 4px; | ||||
|                                         background: #fff; | ||||
|                                         color: #ccc; | ||||
|                                         border: solid 1px #AFD5F5; | ||||
|                                         line-height: 14px; | ||||
|                                     } | ||||
|  | ||||
|                                     .headStyle14mtowhg3z .SelectList { | ||||
|                                         font-size: 12px; | ||||
|                                         font-family: 宋体; | ||||
|                                         line-height: 14px; | ||||
|                                     } | ||||
|  | ||||
|                                     .headStyle14mtowhg3z .Prev { | ||||
|                                         font-size: 12px; | ||||
|                                         font-family: 宋体; | ||||
|                                         margin-right: 3px; | ||||
|                                         padding: 2px 4px; | ||||
|                                         line-height: 14px; | ||||
|                                     } | ||||
|  | ||||
|                                     .headStyle14mtowhg3z .break { | ||||
|                                         font-size: 12px; | ||||
|                                         font-family: 宋体; | ||||
|                                         border: none; | ||||
|                                         text-decoration: none; | ||||
|                                         line-height: 14px; | ||||
|                                     } | ||||
|  | ||||
|                                     .headStyle14mtowhg3z .NextDisabled { | ||||
|                                         font-size: 12px; | ||||
|                                         font-family: 宋体; | ||||
|                                         display: inline-block; | ||||
|                                         height: 14px; | ||||
|                                         margin-left: 2px; | ||||
|                                         padding: 2px 4px; | ||||
|                                         background: #fff; | ||||
|                                         color: #ccc; | ||||
|                                         border: solid 1px #AFD5F5; | ||||
|                                         line-height: 14px; | ||||
|                                     } | ||||
|  | ||||
|                                     .headStyle14mtowhg3z .Next { | ||||
|                                         font-size: 12px; | ||||
|                                         font-family: 宋体; | ||||
|                                         margin-left: 2px; | ||||
|                                         padding: 2px 4px; | ||||
|                                         line-height: 14px; | ||||
|                                     } | ||||
|  | ||||
|                                     .headStyle14mtowhg3z .this-page { | ||||
|                                         font-size: 12px; | ||||
|                                         font-family: 宋体; | ||||
|                                         display: inline-block; | ||||
|                                         height: 14px; | ||||
|                                         padding: 2px 4px; | ||||
|                                         border: solid 1px #AFD5F5; | ||||
|                                         background: #E1F0FD; | ||||
|                                         font-weight: bold; | ||||
|                                         color: black; | ||||
|                                         MARGIN-RIGHT: 1px; | ||||
|                                         line-height: 14px; | ||||
|                                     } | ||||
|  | ||||
|                                     .headStyle14mtowhg3z a:hover { | ||||
|                                         font-size: 12px; | ||||
|                                         font-family: 宋体; | ||||
|                                         color: black; | ||||
|                                         background: #EFF7FE; | ||||
|                                         border-color: #AFD5F5; | ||||
|                                         text-decoration: none; | ||||
|                                         line-height: 14px; | ||||
|                                     } | ||||
|  | ||||
|                                     .headStyle14mtowhg3z a:link { | ||||
|                                         font-size: 12px; | ||||
|                                         font-family: 宋体; | ||||
|                                         color: #000000; | ||||
|                                         text-decoration: none; | ||||
|                                         line-height: 14px; | ||||
|                                     } | ||||
|  | ||||
|                                     .headStyle14mtowhg3z a:active { | ||||
|                                         font-size: 12px; | ||||
|                                         font-family: 宋体; | ||||
|                                         color: black; | ||||
|                                         text-decoration: none; | ||||
|                                         background: #EFF7FE; | ||||
|                                         line-height: 14px; | ||||
|                                     } | ||||
|                                 </style> | ||||
|                                 <script language="javascript" src="/system/resource/js/gotopage.js"></script> | ||||
|                                 <script | ||||
|                                     type="text/javascript">function a130649_gopage_fun() { _simple_list_gotopage_fun(29, 'a130649GOPAGE', 2) }</script> | ||||
|                                 <table cellspacing="0" cellpadding="0" border="0"> | ||||
|                                     <TR> | ||||
|                                         <td colspan="0"> | ||||
|                                             <table cellspacing="0" class="headStyle14mtowhg3z" width="100%" | ||||
|                                                 cellpadding="1"> | ||||
|                                                 <tr valign="middle"> | ||||
|                                                     <TD nowrap align="left" width="1%" id="fanye130649"> | ||||
|                                                         共344条  1/29 </td> | ||||
|                                                     <td nowrap align="left"> | ||||
|                                                         <div><span class="PrevDisabled">首页</span><span | ||||
|                                                                 class="PrevDisabled">上页</span><a href="xgdt/28.htm" | ||||
|                                                                 class="Next">下页</a><a href="xgdt/1.htm" | ||||
|                                                                 class="Next">尾页</a>  <input align="absmiddle" | ||||
|                                                                 type="button" class="defaultButtonStyle" | ||||
|                                                                 id="gotopagebut" name="a130649Find" value="转到" | ||||
|                                                                 onclick="javascript:a130649_gopage_fun()"><INPUT | ||||
|                                                                 size="2" align="absmiddle" class="defaultInputStyle" | ||||
|                                                                 NAME="a130649GOPAGE" id="a130649GOPAGE" VALUE="" | ||||
|                                                                 style="margin-left:1px;margin-right:1px">页</div> | ||||
|                                                     </td> | ||||
|                                                 </tr> | ||||
|                                             </table> | ||||
|                                 </table> | ||||
|                             </div> | ||||
|                             <script>_showDynClickBatch(['dynclicks_u5_5152', 'dynclicks_u5_5146', 'dynclicks_u5_5141', 'dynclicks_u5_5128', 'dynclicks_u5_5123', 'dynclicks_u5_5115', 'dynclicks_u5_5114', 'dynclicks_u5_5126', 'dynclicks_u5_5109', 'dynclicks_u5_5082', 'dynclicks_u5_5064', 'dynclicks_u5_5050'], [5152, 5146, 5141, 5128, 5123, 5115, 5114, 5126, 5109, 5082, 5064, 5050], "wbnews", 1390296022)</script> | ||||
|                         </div> | ||||
|                     </div> | ||||
|                     <div class="clearfix"></div> | ||||
|                 </div> | ||||
|  | ||||
|             </div> | ||||
|         </div> | ||||
|         <!-- //Our-staff-ends --> | ||||
|         <div class="footer"> | ||||
|             <div class="footer-top"> | ||||
|                 <div class="container"> | ||||
|                     <div class="col-md-4 left"> | ||||
|                         <ul class="links"> | ||||
|                             <script language="javascript" src="/system/resource/js/openlink.js"></script> | ||||
|                             <li><a target="_blank" href="http://www.csust.edu.cn/gjjlc/index.htm" title="" | ||||
|                                     onclick="_addDynClicks("wburl", 1390296022, 14711)">· 国际交流处</a></li> | ||||
|                             <li><a target="_blank" href="http://www.csust.edu.cn/wgyxy/index.htm" title="" | ||||
|                                     onclick="_addDynClicks("wburl", 1390296022, 14712)">· 外国语学院</a></li> | ||||
|                             <li><a target="_blank" href="http://www.csust.edu.cn/xsgzb/index.htm" title="" | ||||
|                                     onclick="_addDynClicks("wburl", 1390296022, 14715)">· 学生工作部</a></li> | ||||
|                             <li><a target="_blank" href="http://www.csust.edu.cn/xtw/index.htm" title="" | ||||
|                                     onclick="_addDynClicks("wburl", 1390296022, 14716)">· 校团委</a></li> | ||||
|                         </ul> | ||||
|                         <ul class="links"> | ||||
|                             <li><a target="_blank" href="http://www.hanban.edu.cn/" title="" | ||||
|                                     onclick="_addDynClicks("wburl", 1390296022, 14718)">· 孔子学院总部/国家汉办</a></li> | ||||
|                             <li><a target="_blank" href="http://www.csc.edu.cn/" title="" | ||||
|                                     onclick="_addDynClicks("wburl", 1390296022, 14721)">· 国家留学网</a></li> | ||||
|                             <li><a target="_blank" href="http://www.jsj.edu.cn/" title="" | ||||
|                                     onclick="_addDynClicks("wburl", 1390296022, 14722)">· 中外合作办学监管网</a></li> | ||||
|                             <li><a target="_blank" href="http://www.chinesetest.cn/index.do" title="" | ||||
|                                     onclick="_addDynClicks("wburl", 1390296022, 14726)">· 汉语考试服务网</a></li> | ||||
|                         </ul> | ||||
|                     </div> | ||||
|                     <div class="col-md-4-1 left bor-l footer-contact"> | ||||
|                         <ul> | ||||
|                             <li class="ico_add">地址:湖南省长沙市(雨花区)万家丽南路2段960号</li> | ||||
|                             <li class="ico_tel">电话:(+86)731-85256019</li> | ||||
|                             <li class="ico_fax">传真:0731-85256019</li> | ||||
|                             <li class="ico_mail">邮箱:cslggjxy@csust.edu.cn</li> | ||||
|                         </ul> | ||||
|                     </div> | ||||
|                     <div class="col-md-4-2 right bor-l"><img src="dfiles/3935/pub/gjxy/images/foot_QR.gif" /></div> | ||||
|                     <div class="clearfix"></div> | ||||
|                 </div> | ||||
|             </div> | ||||
|             <div class="footer-bottom"> | ||||
|                 <div class="container"> | ||||
|                     <div class="copyrights"> | ||||
|                         <p>CopyRight © 2015-2018 All Right | ||||
|                             Reserved      长沙理工大学国际工学院版权所有 | ||||
|                             <script> | ||||
|                                 var _hmt = _hmt || []; | ||||
|                                 (function () { | ||||
|                                     var hm = document.createElement("script"); | ||||
|                                     hm.src = "https://hm.baidu.com/hm.js?e2588c00e9bdc9fbd21b8da77023546c"; | ||||
|                                     var s = document.getElementsByTagName("script")[0]; | ||||
|                                     s.parentNode.insertBefore(hm, s); | ||||
|                                 })(); | ||||
|                             </script> | ||||
|                         </p> | ||||
|                     </div> | ||||
|                     <div class="clearfix"></div> | ||||
|                 </div> | ||||
|             </div> | ||||
|         </div> | ||||
|     </div> | ||||
|     </div> | ||||
|     <script type="text/javascript"> | ||||
|  | ||||
|  | ||||
|         $(document).ready(function () { | ||||
|             /* | ||||
|             var defaults = { | ||||
|             containerID: 'toTop', // fading element id | ||||
|             containerHoverID: 'toTopHover', // fading element hover id | ||||
|             scrollSpeed: 1200, | ||||
|             easingType: 'linear'  | ||||
|             }; | ||||
|             */ | ||||
|             $().UItoTop({ easingType: 'easeOutQuart' }); | ||||
|         }); | ||||
|     </script> | ||||
|     <a href="#to-top" id="toTop" style="display: block;"> <span id="toTopHover" style="opacity: 1;"> </span></a> | ||||
|     <script type="text/javascript" src="dfiles/3935/pub/gjxy/images/gjxyuumq10.js"> | ||||
|  | ||||
|     </script> | ||||
|     <script type="text/javascript"> | ||||
|  | ||||
|  | ||||
|         function setShare(title, url) { | ||||
|             var div = document.createElement('div'); | ||||
|             div.innerHTML = '<a href="' + url + '"></a>'; | ||||
|             jiathis_config.title = title; | ||||
|             jiathis_config.url = div.firstChild.href; | ||||
|             div = null; | ||||
|         } | ||||
|         var jiathis_config = {} | ||||
|     </script> | ||||
| </body> | ||||
|  | ||||
| </html> | ||||
		Reference in New Issue
	
	Block a user