From 88ad97d0e0a2a4837c67ec24f3af2baa5be709fa Mon Sep 17 00:00:00 2001 From: leo Date: Thu, 5 Mar 2026 18:02:10 +0800 Subject: [PATCH] =?UTF-8?q?=E6=96=B0=E5=A2=9E=E9=82=AE=E4=BB=B6=E5=8F=91?= =?UTF-8?q?=E9=80=81=E5=8A=9F=E8=83=BD=EF=BC=8C=E6=9B=B4=E6=96=B0=E5=85=B3?= =?UTF-8?q?=E9=94=AE=E8=AF=8D=E5=88=97=E8=A1=A8=EF=BC=8C=E4=BC=98=E5=8C=96?= =?UTF-8?q?=E8=AE=BA=E6=96=87=E6=A3=80=E7=B4=A2=E6=B5=81=E7=A8=8B=EF=BC=8C?= =?UTF-8?q?=E6=B7=BB=E5=8A=A0=20Markdown=20=E8=BD=AC=20PDF=20=E5=8A=9F?= =?UTF-8?q?=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- fina.txt | 9 +- github.css | 444 +++++++++++++++++++++++++++++++++++++++++++++++ main.py | 262 ++++++++++++++++++++-------- requirements.txt | 6 + 4 files changed, 648 insertions(+), 73 deletions(-) create mode 100644 github.css create mode 100644 requirements.txt diff --git a/fina.txt b/fina.txt index 10ce162..8aa8df8 100644 --- a/fina.txt +++ b/fina.txt @@ -1 +1,8 @@ -[{'doi': '10.1038/s41467-025-68011-w', 'journal': 'Nature Communications', 'snippet_en': 'Ionic thermoelectric (i-TE) have become promising candidate for harvesting low-grade thermal energy. However, the development of n-type i-TE materials still lag far behind their p-type counterparts, which impedes the application. Herein, engineering a liquid crystal elastomer (LCE) from side-chain to main-chain structure, just swollen with single LiBF4 or EMIM TFSI, enables the largest adjustable p-n (28.8 ~ −27.4 mV K−1) span among current homologous materials below 30% RH. These high n- and p-type performance further ensure the successful integration of a homogeneous π-type fiber-shaped i-TE capacitor, where three p/n pairs yield an output voltage of 402.5 mV under a tiny temperature difference of 2.5 K. The areal energy density of per n-type fiber reaches 8.1 mJ m−2. More importantly, the i-TE materials also exhibit excellent stability under loadings of cyclic stretching, long-term testing, or temperature-controlled cycling, highlighting its potential for efficient thermal-charge energy storage in flexible electronics and smart wearables.', 'snippet_zh': '离子热电(i-TE)材料已成为收集低品位热能的有前景候选者。然而,n型i-TE材料的发展仍远落后于p型材料,限制了其应用。本文通过将液晶弹性体(LCE)从侧链结构工程化为主链结构,并仅溶胀单一LiBF₄或EMIM TFSI电解质,实现了当前同系材料中在30%相对湿度以下最大的可调p-n跨度(28.8 ~ −27.4 mV K⁻¹)。这种高性能的n型和p型材料进一步确保了均匀π型纤维状i-TE电容器的成功集成,其中三对p/n单元在2.5 K的微小温差下产生402.5 mV的输出电压。每根n型纤维的面能量密度达到8.1 mJ m⁻²。更重要的是,该i-TE材料在循环拉伸、长期测试或温控循环负载下均表现出优异的稳定性,凸显了其在柔性电子和智能穿戴设备中高效热-电荷能量存储的潜力。', 'summary_zh': '本研究通过将液晶弹性体从侧链重构为主链结构,并溶胀单一电解质,开发出具有宽范围可调p-n型热电性能(28.8 ~ −27.4 mV K⁻¹)的新型离子热电材料。基于此材料首次构建了均匀π型纤维状离子热电电容器,在2.5 K微小温差下实现402.5 mV输出电压,且n型纤维面能量密度达8.1 mJ m⁻²。该材料在机械拉伸和温度循环中表现优异稳定性,为柔性电子器件提供了高效热能收集与存储新方案。', 'title_en': 'Engineering liquid crystal elastomer unlocks high thermopower for fiber-shaped ionic thermoelectric capacitors', 'title_zh': '工程化液晶弹性体解锁纤维状离子热电电容器的高热电势'}, {'doi': '10.1038/s41467-025-68148-8', 'journal': 'Nature Communications', 'snippet_en': 'Photoacoustic microscopy (PAM) has been widely used in biomedical studies to provide high-resolution 3D anatomical, functional, and molecular images of living subjects. While handheld PAM systems have been proposed to extend its applicability, it has proved challenging to achieve a compact device that combines fast imaging with high spatial resolution and signal to noise ratio. Here we demonstrate a handheld PAM probe integrating a fiber scanner and high-frequency transparent ultrasound transducer (TUT), called hPAM-TUT. The compact system (measuring 17 mm in diameter, with a 90 mm long rigid body) achieves high lateral and axial resolutions (7 and 47 μm, respectively), has a 2.6 mm diameter field of view, and delivers a single volumetric image in 1.5 s. In living rats, we used hPAM-TUT to visualize various abdominal organs, and in mice we used it to observe epinephrine-induced vascular changes and image the anatomy and functioning of lymphatic vessels after injection of Evans blue dye. Additionally, we successfully delineated murine vascular networks in early metastatic tumors. This handheld PAM probe shows promise for both clinical and research applications in such fields as dermatology, oncology, and intraoperative imaging.', 'snippet_zh': '光声显微镜(PAM)已广泛应用于生物医学研究,能够为活体提供高分辨率的三维解剖、功能及分子图像。尽管已有手持式PAM系统被提出以拓展其应用范围,但实现兼具快速成像、高空间分辨率和高信噪比的紧凑型设备仍具挑战。本文展示了一种集成光纤扫描器与高频透明超声换能器(TUT)的手持式PAM探头(称为hPAM-TUT)。该紧凑系统(直径17毫米,刚性主体长90毫米)实现了较高的横向与轴向分辨率(分别为7微米和47微米),具备2.6毫米直径的视场,并能在1.5秒内完成单次三维成像。在活体大鼠中,我们利用hPAM-TUT观察了多种腹部器官;在小鼠中,实现了肾上腺素诱导的血管变化观测,并通过注射伊文思蓝染料对淋巴管的解剖结构与功能进行了成像。此外,我们成功勾勒了早期转移性肿瘤内的小鼠血管网络。这种手持式PAM探头在皮肤病学、肿瘤学及术中成像等领域的临床与研究应用中展现出广阔前景。', 'summary_zh': '本研究创新性地将高频透明超声换能器(TUT)与光纤扫描器集成于一体,研制出超紧凑手持式光声显微探头(hPAM-TUT)。其核心突破在于解决了传统手持PAM设备难以兼顾小型化、高分辨率(横向7μm/轴向47μm)、快速三维成像(1.5秒/体积)与大视场(2.6mm)的技术矛盾,并通过活体动物实验验证了在多器官成像、动态血管监测及肿瘤微血管可视化等方面的应用潜力,为临床床旁检测和术中实时成像提供了新型工具。', 'title_en': 'A handheld photoacoustic microscopic probe integrating a transparent ultrasound transducer and a fiber scanner', 'title_zh': '一种集成透明超声换能器和光纤扫描器的手持式光声显微探头'}, {'doi': '10.1038/s41467-025-67954-4', 'journal': 'Nature Communications', 'snippet_en': 'Quartz optical fibers are brittle, difficult to repair, and lack reconfigurability, limiting their adaptability in underwater communication. To overcome these impediments, here we show reconfigurable all-liquid optical fibers (RAOFs) produced by structured liquid, tuned by the interfacial assembly and jamming of nanoparticle surfactants at the water-oil interface (interfacial tension <10 mN m-1, refractive index contrast of 0.083). These RAOFs combine the structural stability of the interfacial assemblies with the inherent flexibility of liquids. They support real-time communication on an Ethernet platform (up to 1 Gbps), providing a practical alternative to conventional optical fibers for optical interconnects. Their liquid nature enables broken fibers to be repaired rapidly by a coalescence process. Their softness affords on-demand reconfigurability that enables in-situ fabrication of reconfigurable optical fibers and dynamic manipulation of signal transmission. RAOFs provide a versatile, self-healing, and resilient solution for optical communication systems in dynamic environments.', 'snippet_zh': '石英光纤脆性高、难以修复且缺乏可重构性,限制了其在水下通信中的适应性。为克服这些缺陷,本研究展示了一种通过结构化液体构建的可重构全液体光学纤维(RAOFs),其通过纳米颗粒表面活性剂在水-油界面(界面张力<10 mN m⁻¹,折射率对比度0.083)的界面组装与阻塞效应实现调控。这些RAOFs兼具界面组装的结构稳定性和液体的固有柔性,可在以太网平台上支持实时通信(最高1 Gbps),为光互连提供了传统光纤的实用替代方案。其液体特性使断裂纤维能通过融合过程快速修复,而柔软性则赋予其按需重构能力,实现可重构光纤的原位制备和信号传输的动态调控。RAOFs为动态环境中的光通信系统提供了一种多功能、自修复且适应性强的解决方案。', 'summary_zh': '本研究创新性地利用纳米颗粒界面组装技术,构建了具有结构稳定性和液体柔性的全液体光纤。其核心突破在于:通过低界面张力液体界面调控,实现了光纤的可重构性、自修复能力和动态信号操控,并在以太网环境中达成千兆级实时通信,为动态环境光通信提供了传统石英光纤无法兼具的柔性、可修复与自适应传输新路径。', 'title_en': 'Structured liquid-based reconfigurable all-liquid optical fibers', 'title_zh': '基于结构化液体的可重构全液体光学纤维'}] \ No newline at end of file +[{'doi': '10.1038/s41467-025-68011-w', 'journal': 'Nature Communications', 'snippet_en': 'Ionic thermoelectric (i-TE) have become promising candidate for harvesting low-grade thermal energy. However, the development of n-type i-TE materials still lag far behind their p-type counterparts, which impedes the application. Herein, engineering a liquid crystal elastomer (LCE) from side-chain to main-chain structure, just swollen with single LiBF4 or EMIM TFSI, enables the largest adjustable p-n (28.8 ~ −27.4 mV K−1) span among current homologous materials below 30% RH. These high n- and p-type performance further ensure the successful integration of a homogeneous π-type fiber-shaped i-TE capacitor, where three p/n pairs yield an output voltage of 402.5 mV under a tiny temperature difference of 2.5 K. The areal energy density of per n-type fiber reaches 8.1 mJ m−2. More importantly, the i-TE materials also exhibit excellent stability under loadings of cyclic stretching, long-term testing, or temperature-controlled cycling, highlighting its potential for efficient thermal-charge energy storage in flexible electronics and smart wearables.', 'snippet_zh': '离子热电(i-TE)材料已成为收集低品位热能的有前景候选者。然而,n型i-TE材料的发展仍远落后于p型材料,限制了其应用。本文通过将液晶弹性体(LCE)从侧链结构工程化为主链结构,并仅溶胀单一LiBF₄或EMIM TFSI电解质,实现了当前同系材料中在30%相对湿度以下最大的可调p-n跨度(28.8 ~ −27.4 mV K⁻¹)。这种高性能的n型和p型材料进一步确保了均匀π型纤维状i-TE电容器的成功集成,其中三对p/n单元在2.5 K的微小温差下产生402.5 mV的输出电压。每根n型纤维的面能量密度达到8.1 mJ m⁻²。更重要的是,该i-TE材料在循环拉伸、长期测试或温控循环负载下均表现出优异的稳定性,凸显了其在柔性电子和智能穿戴设备中高效热-电荷能量存储的潜力。', 'summary_zh': '本研究通过将液晶弹性体从侧链重构为主链结构,并溶胀单一电解质,开发出具有宽范围可调p-n型热电性能(28.8 ~ −27.4 mV K⁻¹)的新型离子热电材料。基于此材料首次构建了均匀π型纤维状离子热电电容器,在2.5 K微小温差下实现402.5 mV输出电压,且n型纤维面能量密度达8.1 mJ m⁻²。该材料在机械拉伸和温度循环中表现优异稳定性,为柔性电子器件提供了高效热能收集与存储新方案。', 'title_en': 'Engineering liquid crystal elastomer unlocks high thermopower for fiber-shaped ionic thermoelectric capacitors', 'title_zh': '工程化液晶弹性体解锁纤维状离子热电电容器的高热电势'}, {'doi': '10.1038/s41467-025-68148-8', 'journal': 'Nature Communications', 'snippet_en': 'Photoacoustic microscopy (PAM) has been widely used in biomedical studies to provide high-resolution 3D anatomical, functional, and molecular images of living subjects. While handheld PAM systems have been proposed to extend its applicability, it has proved challenging to achieve a compact device that combines fast imaging with high spatial resolution and signal to noise ratio. Here we demonstrate a handheld PAM probe integrating a fiber scanner and high-frequency transparent ultrasound transducer (TUT), called hPAM-TUT. The compact system (measuring 17 mm in diameter, with a 90 mm long rigid body) achieves high lateral and axial resolutions (7 and 47 μm, respectively), has a 2.6 mm diameter field of view, and delivers a single volumetric image in 1.5 s. In living rats, we used hPAM-TUT to visualize various abdominal organs, and in mice we used it to observe epinephrine-induced vascular changes and image the anatomy and functioning of lymphatic vessels after injection of Evans blue dye. Additionally, we successfully delineated murine vascular networks in early metastatic tumors. This handheld PAM probe shows promise for both clinical and research applications in such fields as dermatology, oncology, and intraoperative imaging.', 'snippet_zh': '光声显微镜(PAM)已广泛应用于生物医学研究,能够为活体提供高分辨率的三维解剖、功能及分子图像。尽管已有手持式PAM系统被提出以拓展其应用范围,但实现兼具快速成像、高空间分辨率和高信噪比的紧凑型设备仍具挑战。本文展示了一种集成光纤扫描器与高频透明超声换能器(TUT)的手持式PAM探头(称为hPAM-TUT)。该紧凑系统(直径17毫米,刚性主体长90毫米)实现了较高的横向与轴向分辨率(分别为7微米和47微米),具备2.6毫米直径的视场,并能在1.5秒内完成单次三维成像。在活体大鼠中,我们利用hPAM-TUT观察了多种腹部器官;在小鼠中,实现了肾上腺素诱导的血管变化观测,并通过注射伊文思蓝染料对淋巴管的解剖结构与功能进行了成像。此外,我们成功勾勒了早期转移性肿瘤内的小鼠血管网络。这种手持式PAM探头在皮肤病学、肿瘤学及术中成像等领域的临床与研究应用中展现出广阔前景。', 'summary_zh': '本研究创新性地将高频透明超声换能器(TUT)与光纤扫描器集成于一体,研制出超紧凑手持式光声显微探头(hPAM-TUT)。其核心突破在于解决了传统手持PAM设备难以兼顾小型化、高分辨率(横向7μm/轴向47μm)、快速三维成像(1.5秒/体积)与大视场(2.6mm)的技术矛盾,并通过活体动物实验验证了在多器官成像、动态血管监测及肿瘤微血管可视化等方面的应用潜力,为临床床旁检测和术中实时成像提供了新型工具。', 'title_en': 'A handheld photoacoustic microscopic probe integrating a transparent ultrasound transducer and a fiber scanner', 'title_zh': '一种集成透明超声换能器和光纤扫描器的手持式光声显微探头'}, {'doi': '10.1038/s41467-025-67954-4', 'journal': 'Nature Communications', 'snippet_en': 'Quartz optical fibers are brittle, difficult to repair, and lack reconfigurability, limiting their adaptability in underwater communication. To overcome these impediments, here we show reconfigurable all-liquid optical fibers (RAOFs) produced by structured liquid, tuned by the interfacial assembly and jamming of nanoparticle surfactants at the water-oil interface (interfacial tension <10 mN m-1, refractive index contrast of 0.083). These RAOFs combine the structural stability of the interfacial assemblies with the inherent flexibility of liquids. They support real-time communication on an Ethernet platform (up to 1 Gbps), providing a practical alternative to conventional optical fibers for optical interconnects. Their liquid nature enables broken fibers to be repaired rapidly by a coalescence process. Their softness affords on-demand reconfigurability that enables in-situ fabrication of reconfigurable optical fibers and dynamic manipulation of signal transmission. RAOFs provide a versatile, self-healing, and resilient solution for optical communication systems in dynamic environments.', 'snippet_zh': '石英光纤脆性高、难以修复且缺乏可重构性,限制了其在水下通信中的适应性。为克服这些缺陷,本研究展示了一种通过结构化液体构建的可重构全液体光学纤维(RAOFs),其通过纳米颗粒表面活性剂在水-油界面(界面张力<10 mN m⁻¹,折射率对比度0.083)的界面组装与阻塞效应实现调控。这些RAOFs兼具界面组装的结构稳定性和液体的固有柔性,可在以太网平台上支持实时通信(最高1 Gbps),为光互连提供了传统光纤的实用替代方案。其液体特性使断裂纤维能通过融合过程快速修复,而柔软性则赋予其按需重构能力,实现可重构光纤的原位制备和信号传输的动态调控。RAOFs为动态环境中的光通信系统提供了一种多功能、自修复且适应性强的解决方案。', 'summary_zh': '本研究创新性地利用纳米颗粒界面组装技术,构建了具有结构稳定性和液体柔性的全液体光纤。其核心突破在于:通过低界面张力液体界面调控,实现了光纤的可重构性、自修复能力和动态信号操控,并在以太网环境中达成千兆级实时通信,为动态环境光通信提供了传统石英光纤无法兼具的柔性、可修复与自适应传输新路径。', 'title_en': 'Structured liquid-based reconfigurable all-liquid optical fibers', 'title_zh': '基于结构化液体的可重构全液体光学纤维'}] + + +[{'doi': '10.1038/s41467-025-67785-3', 'hit_keyword': 'Photonic Integrated Circuits', 'journal': 'Nature Communications', 'title_en': 'Connectivity of the adult human brain with sequential neurogenesis of circuits and transcriptomics signatures'}, {'doi': '10.1038/s41467-025-67983-z', 'hit_keyword': 'Photonic Integrated Circuits', 'journal': 'Nature Communications', 'title_en': 'Scalable photonic reservoir computing for parallel machine learning tasks'}, {'doi': '10.1038/s41467-025-66810-9', 'hit_keyword': 'Computational Imaging', 'journal': 'Nature Communications', 'title_en': 'Ultra-wide spectrum photosynapse array with 64k-scale for neuromorphic fusion imaging'}, {'doi': '10.1038/s41467-025-68166-6', 'hit_keyword': 'Computational Imaging', 'journal': 'Nature Communications', 'title_en': 'Visualization and quantification of lattice strain in battery cathode particles through electron backscatter diffraction imaging'}, {'doi': '10.1038/s41467-025-67954-4', 'hit_keyword': 'Optical Interconnects', 'journal': 'Nature Communications', 'title_en': 'Structured liquid-based reconfigurable all-liquid optical fibers'}, {'doi': '10.1038/s41467-025-68150-0', 'hit_keyword': 'Optical Interconnects', 'journal': 'Nature Communications', 'title_en': 'Automatic optimization of flat-field corrections by evaluation and enhancement (EVEN) in multimodal optical microscopy'}, {'doi': '10.1038/s41566-025-01819-6', 'hit_keyword': 'Silicon Photonics', 'journal': 'Nature Photonics', 'title_en': 'Silicon nitride nanocomposites at the buried interface for stable perovskite solar cells'}, {'doi': '10.1038/s41566-025-01829-4', 'hit_keyword': 'Silicon Photonics', 'journal': 'Nature Photonics', 'title_en': 'Electron shaping for continuous terahertz coverage'}, {'doi': '10.1038/s41566-025-01828-5', 'hit_keyword': 'On-chip Photonics', 'journal': 'Nature Photonics', 'title_en': 'Multiplying matrices in a single pass with light'}, {'doi': '10.1038/s41377-025-02068-6', 'hit_keyword': 'Silicon Photonics', 'journal': 'Light: Science & Applications', 'title_en': 'Topological photonics for single-photon sources'}, {'doi': '10.1038/s41377-025-02111-6', 'hit_keyword': 'Silicon Photonics', 'journal': 'Light: Science & Applications', 'title_en': 'Prof. Siying Peng: caterpillars to butterflies, chasing light in photonics'}, {'doi': '10.1038/s41377-025-02089-1', 'hit_keyword': 'Photonic Integrated Circuits', 'journal': 'Light: Science & Applications', 'title_en': 'Large-area photonic circuits for terahertz detection and beam profiling'}, {'doi': '10.1038/s41377-025-02048-w', 'hit_keyword': 'Photonic Integrated Circuits', 'journal': 'Light: Science & Applications', 'title_en': 'Advances in waveguide to waveguide couplers for 3D integrated photonic packaging'}, {'doi': '10.1038/s41377-025-02084-6', 'hit_keyword': 'Metasurface', 'journal': 'Light: Science & Applications', 'title_en': 'Decoupling metasurface parameters for independent Stokes polarization control via generalized lattice'}, {'doi': '10.1038/s41377-025-02079-3', 'hit_keyword': 'Metasurface', 'journal': 'Light: Science & Applications', 'title_en': 'Electrically tunable strong coupling in a hybrid-2D excitonic metasurface for optical modulation'}, {'doi': '10.1038/s41377-025-02110-7', 'hit_keyword': 'Computational Imaging', 'journal': 'Light: Science & Applications', 'title_en': 'Seeing without touching: weak-disturbance imaging and characterization of ultra-confined optical near fields'}, {'doi': '10.1038/s41377-025-02112-5', 'hit_keyword': 'Computational Imaging', 'journal': 'Light: Science & Applications', 'title_en': 'Point spread function decoupling in computational fluorescence microscopy'}, {'doi': '10.1038/s41377-025-02086-4', 'hit_keyword': 'Diffractive Optics', 'journal': 'Light: Science & Applications', 'title_en': 'Dynamically reprogrammable nonlinear Pancharatnam–Berry phase via ferroelectric nematic liquid crystals: a new paradigm for reconfigurable nonlinear optics'}, {'doi': '10.1038/s41377-025-02141-0', 'hit_keyword': 'Optical Interconnects', 'journal': 'Light: Science & Applications', 'title_en': 'Compressing and expanding optical matrix-vector multipliers for enabling optical image encoder-decoders and generators'}, {'doi': '10.1038/s41377-025-02123-2', 'hit_keyword': 'Optical Interconnects', 'journal': 'Light: Science & Applications', 'title_en': 'Demonstrating completeness in optical neural computing'}, {'doi': '10.1117/1.ap.8.1.014005', 'hit_keyword': 'Silicon Photonics', 'journal': 'Advanced Photonics', 'title_en': 'Quantum information processing with spatially structured light'}, {'doi': '10.1117/1.ap.8.1.016006', 'hit_keyword': 'Silicon Photonics', 'journal': 'Advanced Photonics', 'title_en': 'Ultra-rapid and reusable luminescent gas sensor based on MAPbX3 quantum dots nano-confined in glass'}, {'doi': '10.1117/1.ap.8.1.016007', 'hit_keyword': 'Metasurface', 'journal': 'Advanced Photonics', 'title_en': 'Water-soluble metasurface labels for environmentally sustainable humidity monitoring, origin authentication, and anticounterfeit packaging'}, {'doi': '10.1002/lpor.202502379', 'hit_keyword': 'Silicon Photonics', 'journal': 'Laser & Photonics Reviews', 'title_en': 'Randomly‐Coupled Multicore Fibers for Ultra‐Sensitive Curvature Sensing'}, {'doi': '10.1002/lpor.202502183', 'hit_keyword': 'Silicon Photonics', 'journal': 'Laser & Photonics Reviews', 'title_en': 'Pupil Plane Multiplexing for Vectorial Fourier Ptychography'}, {'doi': '10.1002/lpor.202501910', 'hit_keyword': 'Photonic Integrated Circuits', 'journal': 'Laser & Photonics Reviews', 'title_en': 'Reconfigurable Microwave Photonic Filters with Ultrasteep Roll‐Off Based on Optical Microcombs'}, {'doi': '10.1002/lpor.202502808', 'hit_keyword': 'Metasurface', 'journal': 'Laser & Photonics Reviews', 'title_en': 'Generating Microwave Bimerons with Propagation‐Variable Topologies by Single Metasurface'}, {'doi': '10.1002/lpor.202503039', 'hit_keyword': 'Optical Interconnects', 'journal': 'Laser & Photonics Reviews', 'title_en': 'Multi‐Dimensional Multiplexing Cascaded Liquid Crystal Elements for Compartmentalized Optical Encryption'}, {'doi': '10.1364/prj.589712', 'hit_keyword': 'Silicon Photonics', 'journal': 'Photonics Research', 'title_en': 'Photonics Research Interview with Professor Alan Willner'}, {'doi': '10.1364/prj.570698', 'hit_keyword': 'Silicon Photonics', 'journal': 'Photonics Research', 'title_en': 'Inverse design for ultra-compact integrated photonics'}, {'doi': '10.1364/prj.579795', 'hit_keyword': 'Photonic Integrated Circuits', 'journal': 'Photonics Research', 'title_en': 'Unlocking High-Speed and High-Resolution Photonic-Swept Microwave Frequency Identification via Ringing Effect'}, {'doi': '10.1364/prj.582627', 'hit_keyword': 'Photonic Integrated Circuits', 'journal': 'Photonics Research', 'title_en': 'Non-volatile programmable directional couplers for high-integration and low-loss photonic computing'}, {'doi': '10.1364/prj.583019', 'hit_keyword': 'Metasurface', 'journal': 'Photonics Research', 'title_en': 'Multiplexed interference metasurface for complete phase, amplitude, and polarization control'}, {'doi': '10.1364/prj.586505', 'hit_keyword': 'Computational Imaging', 'journal': 'Photonics Research', 'title_en': 'Universal Generalization and Quantitative Assessment of Deep Learning for Imaging through Scattering Media'}, {'doi': '10.1364/prj.581675', 'hit_keyword': 'Computational Imaging', 'journal': 'Photonics Research', 'title_en': 'Research Article Photonics Research 1 Real-time imaging through moving scattering media enabled by fixed optical modulations'}, {'doi': '10.1364/prj.582252', 'hit_keyword': 'Optical Interconnects', 'journal': 'Photonics Research', 'title_en': 'Enhancing optical trapping with topological charge-tailored Airyprime-Gaussian beam arrays'}, {'doi': '10.1126/sciadv.aea6228', 'hit_keyword': 'Silicon Photonics', 'journal': 'Science Advances', 'title_en': 'Organic lateral heterostructures with interfacial fluctuation for polarization-resolved photonics'}, {'doi': '10.1126/sciadv.ady8957', 'hit_keyword': 'Photonic Integrated Circuits', 'journal': 'Science Advances', 'title_en': 'Advancing global sea ice prediction capabilities using a fully coupled climate model with integrated machine learning'}, {'doi': '10.1126/sciadv.adx7389', 'hit_keyword': 'Metamaterials', 'journal': 'Science Advances', 'title_en': 'Self-supervised AI for decoding and designing disordered metamaterials'}, {'doi': '10.1126/sciadv.ads2734', 'hit_keyword': 'Computational Imaging', 'journal': 'Science Advances', 'title_en': 'Trade-off between branching and polarity controls decision-making during cell migration'}, {'doi': '10.1126/sciadv.aec0523', 'hit_keyword': 'Computational Imaging', 'journal': 'Science Advances', 'title_en': '4Pi stimulated Raman scattering for label-free super-resolution chemical imaging'}, {'doi': '10.1126/sciadv.ady5421', 'hit_keyword': 'Diffractive Optics', 'journal': 'Science Advances', 'title_en': 'Tunneling field emission from nano-optics under electron irradiation'}, {'doi': '10.1126/sciadv.aea8941', 'hit_keyword': 'Diffractive Optics', 'journal': 'Science Advances', 'title_en': 'Metaoptics merging computational optics and optical computing toward intelligent visual perception'}, {'doi': '10.1126/sciadv.aea9874', 'hit_keyword': 'On-chip Photonics', 'journal': 'Science Advances', 'title_en': 'Autologous human iPSC–derived alveolus-on-chip reveals early pathological events of + Mycobacterium tuberculosis + infection'}, {'doi': '10.1364/optica.584297', 'hit_keyword': 'Photonic Integrated Circuits', 'journal': 'Optica', 'title_en': 'High-speed electro-optic engine for quantized photonic neural network'}, {'doi': '10.1364/optica.570334', 'hit_keyword': 'Computational Imaging', 'journal': 'Optica', 'title_en': 'Designing lensless imaging systems to maximize information capture'}] + + diff --git a/github.css b/github.css new file mode 100644 index 0000000..564c728 --- /dev/null +++ b/github.css @@ -0,0 +1,444 @@ +:root { + --side-bar-bg-color: #fafafa; + --control-text-color: #777; +} + +@include-when-export url(https://fonts.googleapis.com/css?family=Open+Sans:400italic,700italic,700,400&subset=latin,latin-ext); + +/* open-sans-regular - latin-ext_latin */ +@font-face { + font-family: 'Open Sans'; + font-style: normal; + font-weight: normal; + src: local('Open Sans Regular'), local('OpenSans-Regular'), url('./github/open-sans-v17-latin-ext_latin-regular.woff2') format('woff2'); + unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD, U+0100-024F, U+0259, U+1E00-1EFF, U+2020, U+20A0-20AB, U+20AD-20CF, U+2113, U+2C60-2C7F, U+A720-A7FF; + } + /* open-sans-italic - latin-ext_latin */ + @font-face { + font-family: 'Open Sans'; + font-style: italic; + font-weight: normal; + src: local('Open Sans Italic'), local('OpenSans-Italic'), url('./github/open-sans-v17-latin-ext_latin-italic.woff2') format('woff2'); + unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD, U+0100-024F, U+0259, U+1E00-1EFF, U+2020, U+20A0-20AB, U+20AD-20CF, U+2113, U+2C60-2C7F, U+A720-A7FF; + } + /* open-sans-700 - latin-ext_latin */ + @font-face { + font-family: 'Open Sans'; + font-style: normal; + font-weight: bold; + src: local('Open Sans Bold'), local('OpenSans-Bold'), url('./github/open-sans-v17-latin-ext_latin-700.woff2') format('woff2'); + unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD, U+0100-024F, U+0259, U+1E00-1EFF, U+2020, U+20A0-20AB, U+20AD-20CF, U+2113, U+2C60-2C7F, U+A720-A7FF; + } + /* open-sans-700italic - latin-ext_latin */ + @font-face { + font-family: 'Open Sans'; + font-style: italic; + font-weight: bold; + src: local('Open Sans Bold Italic'), local('OpenSans-BoldItalic'), url('./github/open-sans-v17-latin-ext_latin-700italic.woff2') format('woff2'); + unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD, U+0100-024F, U+0259, U+1E00-1EFF, U+2020, U+20A0-20AB, U+20AD-20CF, U+2113, U+2C60-2C7F, U+A720-A7FF; + } +/* github.css */ +@font-face { + font-family: "Noto Sans CJK SC"; + font-style: normal; + font-weight: 400; + src: local("Noto Sans CJK SC"), + local("NotoSansCJK-Regular"), + url("file:///usr/share/fonts/opentype/noto/NotoSansCJK-Regular.ttc"), + url("file:///usr/share/fonts/truetype/noto/NotoSansCJK-Regular.ttc"), + url("file:///usr/share/fonts/opentype/adobe/SourceHanSansSC-Regular.otf"), + url("file:///usr/share/fonts/opentype/noto/NotoSansCJKSC-Regular.otf"); +} + +@font-face { + font-family: "Noto Sans CJK SC"; + font-style: normal; + font-weight: 700; + src: local("Noto Sans CJK SC Bold"), + local("NotoSansCJK-Bold"), + url("file:///usr/share/fonts/opentype/noto/NotoSansCJK-Bold.ttc"), + url("file:///usr/share/fonts/truetype/noto/NotoSansCJK-Bold.ttc"), + url("file:///usr/share/fonts/opentype/adobe/SourceHanSansSC-Bold.otf"), + url("file:///usr/share/fonts/opentype/noto/NotoSansCJKSC-Bold.otf"); +} + +body, #write { + font-family: "Noto Sans CJK SC", "Source Han Sans SC", "WenQuanYi Micro Hei", "WenQuanYi Zen Hei", "Noto Sans", sans-serif; +} + +html { + font-size: 16px; + -webkit-font-smoothing: antialiased; +} + +body { + font-family: "Noto Sans CJK SC", "Source Han Sans SC", "WenQuanYi Micro Hei", "WenQuanYi Zen Hei", "Open Sans","Clear Sans", "Helvetica Neue", Helvetica, Arial, 'Segoe UI Emoji', 'SF Pro', sans-serif; + color: rgb(51, 51, 51); + line-height: 1.6; +} + +#write { + max-width: 860px; + margin: 0 auto; + padding: 30px; + padding-bottom: 100px; +} + +@media only screen and (min-width: 1400px) { + #write { + max-width: 1024px; + } +} + +@media only screen and (min-width: 1800px) { + #write { + max-width: 1200px; + } +} + +#write > ul:first-child, +#write > ol:first-child{ + margin-top: 30px; +} + +a { + color: #4183C4; +} +h1, +h2, +h3, +h4, +h5, +h6 { + position: relative; + margin-top: 1rem; + margin-bottom: 1rem; + font-weight: bold; + line-height: 1.4; + cursor: text; +} +h1:hover a.anchor, +h2:hover a.anchor, +h3:hover a.anchor, +h4:hover a.anchor, +h5:hover a.anchor, +h6:hover a.anchor { + text-decoration: none; +} +h1 tt, +h1 code { + font-size: inherit; +} +h2 tt, +h2 code { + font-size: inherit; +} +h3 tt, +h3 code { + font-size: inherit; +} +h4 tt, +h4 code { + font-size: inherit; +} +h5 tt, +h5 code { + font-size: inherit; +} +h6 tt, +h6 code { + font-size: inherit; +} +h1 { + font-size: 2.25em; + line-height: 1.2; + border-bottom: 1px solid #eee; +} +h2 { + font-size: 1.75em; + line-height: 1.225; + border-bottom: 1px solid #eee; +} + +/*@media print { + .typora-export h1, + .typora-export h2 { + border-bottom: none; + padding-bottom: initial; + } + + .typora-export h1::after, + .typora-export h2::after { + content: ""; + display: block; + height: 100px; + margin-top: -96px; + border-top: 1px solid #eee; + } +}*/ + +h3 { + font-size: 1.5em; + line-height: 1.43; +} +h4 { + font-size: 1.25em; +} +h5 { + font-size: 1em; +} +h6 { + font-size: 1em; + color: #777; +} +p, +blockquote, +ul, +ol, +dl, +table{ + margin: 0.8em 0; +} +li>ol, +li>ul { + margin: 0 0; +} +hr { + height: 2px; + padding: 0; + margin: 16px 0; + background-color: #e7e7e7; + border: 0 none; + overflow: hidden; + box-sizing: content-box; +} + +li p.first { + display: inline-block; +} +ul, +ol { + padding-left: 30px; +} +ul:first-child, +ol:first-child { + margin-top: 0; +} +ul:last-child, +ol:last-child { + margin-bottom: 0; +} +blockquote { + border-left: 4px solid #dfe2e5; + padding: 0 15px; + color: #777777; +} +blockquote blockquote { + padding-right: 0; +} +table { + padding: 0; + word-break: initial; +} +table tr { + border: 1px solid #dfe2e5; + margin: 0; + padding: 0; +} +table tr:nth-child(2n), +thead { + background-color: #f8f8f8; +} +table th { + font-weight: bold; + border: 1px solid #dfe2e5; + border-bottom: 0; + margin: 0; + padding: 6px 13px; +} +table td { + border: 1px solid #dfe2e5; + margin: 0; + padding: 6px 13px; +} +table th:first-child, +table td:first-child { + margin-top: 0; +} +table th:last-child, +table td:last-child { + margin-bottom: 0; +} + +.CodeMirror-lines { + padding-left: 4px; +} + +.code-tooltip { + box-shadow: 0 1px 1px 0 rgba(0,28,36,.3); + border-top: 1px solid #eef2f2; +} + +.md-fences, +code, +tt { + border: 1px solid #e7eaed; + background-color: #f8f8f8; + border-radius: 3px; + padding: 0; + padding: 2px 4px 0px 4px; + font-size: 0.9em; +} + +code { + background-color: #f3f4f4; + padding: 0 2px 0 2px; +} + +.md-fences { + margin-bottom: 15px; + margin-top: 15px; + padding-top: 8px; + padding-bottom: 6px; +} + + +.md-task-list-item > input { + margin-left: -1.3em; +} + +@media print { + html { + font-size: 13px; + } + pre { + page-break-inside: avoid; + word-wrap: break-word; + } +} + +.md-fences { + background-color: #f8f8f8; +} +#write pre.md-meta-block { + padding: 1rem; + font-size: 85%; + line-height: 1.45; + background-color: #f7f7f7; + border: 0; + border-radius: 3px; + color: #777777; + margin-top: 0 !important; +} + +.mathjax-block>.code-tooltip { + bottom: .375rem; +} + +.md-mathjax-midline { + background: #fafafa; +} + +#write>h3.md-focus:before{ + left: -1.5625rem; + top: .375rem; +} +#write>h4.md-focus:before{ + left: -1.5625rem; + top: .285714286rem; +} +#write>h5.md-focus:before{ + left: -1.5625rem; + top: .285714286rem; +} +#write>h6.md-focus:before{ + left: -1.5625rem; + top: .285714286rem; +} +.md-image>.md-meta { + /*border: 1px solid #ddd;*/ + border-radius: 3px; + padding: 2px 0px 0px 4px; + font-size: 0.9em; + color: inherit; +} + +.md-tag { + color: #a7a7a7; + opacity: 1; +} + +.md-toc { + margin-top:20px; + padding-bottom:20px; +} + +.sidebar-tabs { + border-bottom: none; +} + +#typora-quick-open { + border: 1px solid #ddd; + background-color: #f8f8f8; +} + +#typora-quick-open-item { + background-color: #FAFAFA; + border-color: #FEFEFE #e5e5e5 #e5e5e5 #eee; + border-style: solid; + border-width: 1px; +} + +/** focus mode */ +.on-focus-mode blockquote { + border-left-color: rgba(85, 85, 85, 0.12); +} + +header, .context-menu, .megamenu-content, footer{ + font-family: "Segoe UI", "Arial", sans-serif; +} + +.file-node-content:hover .file-node-icon, +.file-node-content:hover .file-node-open-state{ + visibility: visible; +} + +.mac-seamless-mode #typora-sidebar { + background-color: #fafafa; + background-color: var(--side-bar-bg-color); +} + +.mac-os #write{ + caret-color: AccentColor; +} + +.md-lang { + color: #b4654d; +} + +/*.html-for-mac { + --item-hover-bg-color: #E6F0FE; +}*/ + +#md-notification .btn { + border: 0; +} + +.dropdown-menu .divider { + border-color: #e5e5e5; + opacity: 0.4; +} + +.ty-preferences .window-content { + background-color: #fafafa; +} + +.ty-preferences .nav-group-item.active { + color: white; + background: #999; +} + +.menu-item-container a.menu-style-btn { + background-color: #f5f8fa; + background-image: linear-gradient( 180deg , hsla(0, 0%, 100%, 0.8), hsla(0, 0%, 100%, 0)); +} diff --git a/main.py b/main.py index b3de1f8..62e55ce 100644 --- a/main.py +++ b/main.py @@ -2,8 +2,12 @@ import requests import datetime import time import os +import smtplib +from email.message import EmailMessage from habanero import Crossref -from serpapi import GoogleSearch +import markdown as md +from weasyprint import HTML, CSS + # ================= 1. 配置中心 ================= FEISHU_APP_ID = "cli_a9d25c8530785cc8" @@ -16,7 +20,26 @@ DS_API_URL = "https://api.deepseek.com/chat/completions" SERP_API_KEY = "e2778d6230fb7b81584e875344dd5cd38c8c5679f2b0dd4d1fd1cee7a1461a44" -TARGET_KEYWORDS = ["Silicon Photonics", "Laser", "Metasurface", "Optical Fiber"] # TODO +MAIL_SENDER = "lmyleo7@163.com" # 请替换为你的163邮箱 +MAIL_APP_PASSWORD = "VDcsViqCvGUHg3V4" # 请替换为你的163邮箱授权码 +MAIL_RECIPIENT = "kwei@zju.edu.cn" +MAIL_SMTP_SERVER = "smtp.163.com" +MAIL_SMTP_PORT = 465 + +TARGET_KEYWORDS = [ + "Silicon Photonics", + "Photonic Integrated Circuits", + "Nanophotonics", + "Metasurface", + "Metamaterials", + "Computational Imaging", + "Plasmonics", + "Optoelectronics", + "Diffractive Optics", + "Optical Interconnects", + "On-chip Photonics", + "Flat Optics" +] # ================= 2. 核心功能函数 ================= @@ -53,34 +76,52 @@ def get_journal_configs(): def fetch_dois_crossref(journal_configs): - """[STEP 2] 通过 Crossref 锁定最近 7 天的论文""" - print(f"\n--- [STEP 2] 正在 Crossref 检索 (最近 7 天) ---") + """[STEP 2] 通过 Crossref 挨个关键词检索最近 7 天的论文""" + print(f"\n--- [STEP 2] 正在 Crossref 检索 (按关键词逐一扫描) ---") cr = Crossref(mailto="hextorize@gmail.com") start_date = (datetime.date.today() - datetime.timedelta(days=7)).strftime("%Y-%m-%d") + tasks = [] + seen_dois = set() # 用于去重 + for j in journal_configs: - print(f" > 扫描: {j['name']}...", end="", flush=True) - filters = {'from-pub-date': start_date} + print(f"\n >>> 正在扫描期刊: {j['name']}") target_issn = j['e_issn'] or j['issn'] - query_str = " ".join(TARGET_KEYWORDS) - if target_issn: - filters['issn'] = target_issn - else: - query_str = f'"{j["name"]}" ' + query_str + # 遍历每一个关键词进行搜索 + for kw in TARGET_KEYWORDS: + print(f" - 搜索关键词: {kw}...", end="", flush=True) - try: - res = cr.works(filter=filters, query=query_str, limit=3, select="title,DOI") - items = res['message'].get('items', []) - print(f" 找到 {len(items)} 篇") - for art in items: - tasks.append({ - "title_en": art['title'][0] if art.get('title') else "No Title", - "doi": art['DOI'], - "journal": j['name'] - }) - except: - print(" 跳过") + filters = {'from-pub-date': start_date} + if target_issn: + filters['issn'] = target_issn + query_str = kw + else: + # 如果没有 ISSN,强制在 query 中包含期刊名 + query_str = f'"{j["name"]}" {kw}' + + try: + # 每个关键词限制搜 1-2 篇,避免任务量过大 + res = cr.works(filter=filters, query=query_str, limit=3, select="title,DOI") + items = res['message'].get('items', []) + + new_found = 0 + for art in items: + doi = art['DOI'] + if doi not in seen_dois: + tasks.append({ + "title_en": art['title'][0] if art.get('title') else "No Title", + "doi": doi, + "journal": j['name'], + "hit_keyword": kw # 记录是被哪个词命中的 + }) + seen_dois.add(doi) + new_found += 1 + print(f" 新找到 {new_found} 篇") + except Exception as e: + print(" 跳过 (请求异常)") + + print(f"\n✅ 扫描结束,共锁定 {len(tasks)} 篇唯一论文") return tasks @@ -90,20 +131,23 @@ def enrich_content_serpapi(tasks): for i, task in enumerate(tasks): print(f" [{i + 1}/{len(tasks)}] 检索 DOI: {task['doi']}...", end="", flush=True) try: - search = GoogleSearch({ + params = { "engine": "google_scholar", "q": f"DOI:{task['doi']}", "api_key": SERP_API_KEY, - "hl": "en" - }) - results = search.get_dict().get("organic_results", []) - task['snippet_en'] = results[0].get("snippet", - "No abstract snippet available.") if results else "No content found." + "hl": "en", + } + res = requests.get("https://serpapi.com/search.json", params=params, timeout=30) + res.raise_for_status() + results = res.json().get("organic_results", []) + task['snippet_en'] = results[0].get( + "snippet", "No abstract snippet available." + ) if results else "No content found." print(" [OK]") except Exception as e: task['snippet_en'] = f"Search Error: {e}" print(" [Error]") - time.sleep(0.6) + time.sleep(0.6) # 稍微延迟避免 API 限制 return tasks @@ -144,11 +188,17 @@ def save_to_markdown(tasks): with open(file_name, "w", encoding="utf-8") as f: f.write(f"# 光学行业学术动态周报 ({today_str})\n\n") - f.write("---\n\n") + + f.write("## 目录\n") + for idx, task in enumerate(tasks, start=1): + title = task.get('title_zh', 'N/A') + anchor = f"task-{idx}" + f.write(f"- [{idx}. {title}](#{anchor})\n") + f.write("\n---\n\n") for idx, task in enumerate(tasks): f.write(f"### {idx + 1}. {task.get('title_zh', 'N/A')}\n\n") - f.write(f"**期刊**: {task['journal']} \n") + f.write(f"**期刊**: {task['journal']} | **匹配关键词**: {task.get('hit_keyword', 'N/A')} \n") f.write(f"**DOI**: [{task['doi']}](https://doi.org/{task['doi']})\n\n") f.write(f"#### 【标题】\n") @@ -159,7 +209,7 @@ def save_to_markdown(tasks): f.write(f"> *{task.get('snippet_en', 'N/A')}*\n\n") f.write(f"#### 【摘要翻译】\n") - f.write(f"> {task.get('snippet_zh', 'N/A')}\n\n") # 修正:此处已添加中文摘要 + f.write(f"> {task.get('snippet_zh', 'N/A')}\n\n") f.write(f"#### 【AI 深度总结】\n") f.write(f"{task.get('summary_zh', 'N/A')}\n\n") @@ -167,51 +217,119 @@ def save_to_markdown(tasks): f.write("---\n\n") print(f"✅ Markdown 周报已保存: {os.path.abspath(file_name)}") + return os.path.abspath(file_name) + + +def markdown_to_pdf(md_path, css_path, pdf_path=None): + """[STEP 6] 将 Markdown 转为 PDF""" + if not os.path.exists(md_path): + print(f"❌ Markdown 文件不存在: {md_path}") + return None + if not os.path.exists(css_path): + print(f"❌ CSS 文件不存在: {css_path}") + return None + + if pdf_path is None: + pdf_path = os.path.splitext(md_path)[0] + ".pdf" + + + + with open(md_path, "r", encoding="utf-8") as f: + md_text = f.read() + + html_body = md.markdown(md_text, extensions=["extra", "tables", "sane_lists"]) + html_doc = ( + "" + "" + f"
{html_body}
" + ) + + base_url = os.path.dirname(os.path.abspath(md_path)) + HTML(string=html_doc, base_url=base_url).write_pdf( + pdf_path, + stylesheets=[CSS(filename=css_path)] + ) + + print(f"✅ PDF 已生成: {os.path.abspath(pdf_path)}") + return os.path.abspath(pdf_path) + + +def send_pdf_via_email(pdf_path, subject, to_email): + """[STEP 7] 通过 163 邮箱发送 PDF""" + if not MAIL_SENDER or not MAIL_APP_PASSWORD or not to_email: + print("⚠️ 邮箱配置为空,跳过发送。") + return False + if not os.path.exists(pdf_path): + print(f"❌ PDF 文件不存在: {pdf_path}") + return False + + msg = EmailMessage() + msg["Subject"] = subject + msg["From"] = MAIL_SENDER + msg["To"] = to_email + msg.set_content("技术前沿周报已生成,详见附件 PDF。") + + with open(pdf_path, "rb") as f: + pdf_data = f.read() + + msg.add_attachment( + pdf_data, + maintype="application", + subtype="pdf", + filename=os.path.basename(pdf_path) + ) + + try: + with smtplib.SMTP_SSL(MAIL_SMTP_SERVER, MAIL_SMTP_PORT) as server: + server.login(MAIL_SENDER, MAIL_APP_PASSWORD) + server.send_message(msg) + print(f"✅ 邮件已发送: {to_email}") + return True + except Exception as e: + print(f"❌ 邮件发送失败: {e}") + return False # ================= 3. 执行入口 ================= if __name__ == "__main__": - final_reports = [{'doi': '10.1038/s41467-025-68011-w', 'journal': 'Nature Communications', 'snippet_en': 'Ionic thermoelectric (i-TE) have become promising candidate for harvesting low-grade thermal energy. However, the development of n-type i-TE materials still lag far behind their p-type counterparts, which impedes the application. Herein, engineering a liquid crystal elastomer (LCE) from side-chain to main-chain structure, just swollen with single LiBF4 or EMIM TFSI, enables the largest adjustable p-n (28.8 ~ −27.4 mV K−1) span among current homologous materials below 30% RH. These high n- and p-type performance further ensure the successful integration of a homogeneous π-type fiber-shaped i-TE capacitor, where three p/n pairs yield an output voltage of 402.5 mV under a tiny temperature difference of 2.5 K. The areal energy density of per n-type fiber reaches 8.1 mJ m−2. More importantly, the i-TE materials also exhibit excellent stability under loadings of cyclic stretching, long-term testing, or temperature-controlled cycling, highlighting its potential for efficient thermal-charge energy storage in flexible electronics and smart wearables.', 'snippet_zh': '离子热电(i-TE)材料已成为收集低品位热能的有前景候选者。然而,n型i-TE材料的发展仍远落后于p型材料,限制了其应用。本文通过将液晶弹性体(LCE)从侧链结构工程化为主链结构,并仅溶胀单一LiBF₄或EMIM TFSI电解质,实现了当前同系材料中在30%相对湿度以下最大的可调p-n跨度(28.8 ~ −27.4 mV K⁻¹)。这种高性能的n型和p型材料进一步确保了均匀π型纤维状i-TE电容器的成功集成,其中三对p/n单元在2.5 K的微小温差下产生402.5 mV的输出电压。每根n型纤维的面能量密度达到8.1 mJ m⁻²。更重要的是,该i-TE材料在循环拉伸、长期测试或温控循环负载下均表现出优异的稳定性,凸显了其在柔性电子和智能穿戴设备中高效热-电荷能量存储的潜力。', 'summary_zh': '本研究通过将液晶弹性体从侧链重构为主链结构,并溶胀单一电解质,开发出具有宽范围可调p-n型热电性能(28.8 ~ −27.4 mV K⁻¹)的新型离子热电材料。基于此材料首次构建了均匀π型纤维状离子热电电容器,在2.5 K微小温差下实现402.5 mV输出电压,且n型纤维面能量密度达8.1 mJ m⁻²。该材料在机械拉伸和温度循环中表现优异稳定性,为柔性电子器件提供了高效热能收集与存储新方案。', 'title_en': 'Engineering liquid crystal elastomer unlocks high thermopower for fiber-shaped ionic thermoelectric capacitors', 'title_zh': '工程化液晶弹性体解锁纤维状离子热电电容器的高热电势'}, {'doi': '10.1038/s41467-025-68148-8', 'journal': 'Nature Communications', 'snippet_en': 'Photoacoustic microscopy (PAM) has been widely used in biomedical studies to provide high-resolution 3D anatomical, functional, and molecular images of living subjects. While handheld PAM systems have been proposed to extend its applicability, it has proved challenging to achieve a compact device that combines fast imaging with high spatial resolution and signal to noise ratio. Here we demonstrate a handheld PAM probe integrating a fiber scanner and high-frequency transparent ultrasound transducer (TUT), called hPAM-TUT. The compact system (measuring 17 mm in diameter, with a 90 mm long rigid body) achieves high lateral and axial resolutions (7 and 47 μm, respectively), has a 2.6 mm diameter field of view, and delivers a single volumetric image in 1.5 s. In living rats, we used hPAM-TUT to visualize various abdominal organs, and in mice we used it to observe epinephrine-induced vascular changes and image the anatomy and functioning of lymphatic vessels after injection of Evans blue dye. Additionally, we successfully delineated murine vascular networks in early metastatic tumors. This handheld PAM probe shows promise for both clinical and research applications in such fields as dermatology, oncology, and intraoperative imaging.', 'snippet_zh': '光声显微镜(PAM)已广泛应用于生物医学研究,能够为活体提供高分辨率的三维解剖、功能及分子图像。尽管已有手持式PAM系统被提出以拓展其应用范围,但实现兼具快速成像、高空间分辨率和高信噪比的紧凑型设备仍具挑战。本文展示了一种集成光纤扫描器与高频透明超声换能器(TUT)的手持式PAM探头(称为hPAM-TUT)。该紧凑系统(直径17毫米,刚性主体长90毫米)实现了较高的横向与轴向分辨率(分别为7微米和47微米),具备2.6毫米直径的视场,并能在1.5秒内完成单次三维成像。在活体大鼠中,我们利用hPAM-TUT观察了多种腹部器官;在小鼠中,实现了肾上腺素诱导的血管变化观测,并通过注射伊文思蓝染料对淋巴管的解剖结构与功能进行了成像。此外,我们成功勾勒了早期转移性肿瘤内的小鼠血管网络。这种手持式PAM探头在皮肤病学、肿瘤学及术中成像等领域的临床与研究应用中展现出广阔前景。', 'summary_zh': '本研究创新性地将高频透明超声换能器(TUT)与光纤扫描器集成于一体,研制出超紧凑手持式光声显微探头(hPAM-TUT)。其核心突破在于解决了传统手持PAM设备难以兼顾小型化、高分辨率(横向7μm/轴向47μm)、快速三维成像(1.5秒/体积)与大视场(2.6mm)的技术矛盾,并通过活体动物实验验证了在多器官成像、动态血管监测及肿瘤微血管可视化等方面的应用潜力,为临床床旁检测和术中实时成像提供了新型工具。', 'title_en': 'A handheld photoacoustic microscopic probe integrating a transparent ultrasound transducer and a fiber scanner', 'title_zh': '一种集成透明超声换能器和光纤扫描器的手持式光声显微探头'}, {'doi': '10.1038/s41467-025-67954-4', 'journal': 'Nature Communications', 'snippet_en': 'Quartz optical fibers are brittle, difficult to repair, and lack reconfigurability, limiting their adaptability in underwater communication. To overcome these impediments, here we show reconfigurable all-liquid optical fibers (RAOFs) produced by structured liquid, tuned by the interfacial assembly and jamming of nanoparticle surfactants at the water-oil interface (interfacial tension <10 mN m-1, refractive index contrast of 0.083). These RAOFs combine the structural stability of the interfacial assemblies with the inherent flexibility of liquids. They support real-time communication on an Ethernet platform (up to 1 Gbps), providing a practical alternative to conventional optical fibers for optical interconnects. Their liquid nature enables broken fibers to be repaired rapidly by a coalescence process. Their softness affords on-demand reconfigurability that enables in-situ fabrication of reconfigurable optical fibers and dynamic manipulation of signal transmission. RAOFs provide a versatile, self-healing, and resilient solution for optical communication systems in dynamic environments.', 'snippet_zh': '石英光纤脆性高、难以修复且缺乏可重构性,限制了其在水下通信中的适应性。为克服这些缺陷,本研究展示了一种通过结构化液体构建的可重构全液体光学纤维(RAOFs),其通过纳米颗粒表面活性剂在水-油界面(界面张力<10 mN m⁻¹,折射率对比度0.083)的界面组装与阻塞效应实现调控。这些RAOFs兼具界面组装的结构稳定性和液体的固有柔性,可在以太网平台上支持实时通信(最高1 Gbps),为光互连提供了传统光纤的实用替代方案。其液体特性使断裂纤维能通过融合过程快速修复,而柔软性则赋予其按需重构能力,实现可重构光纤的原位制备和信号传输的动态调控。RAOFs为动态环境中的光通信系统提供了一种多功能、自修复且适应性强的解决方案。', 'summary_zh': '本研究创新性地利用纳米颗粒界面组装技术,构建了具有结构稳定性和液体柔性的全液体光纤。其核心突破在于:通过低界面张力液体界面调控,实现了光纤的可重构性、自修复能力和动态信号操控,并在以太网环境中达成千兆级实时通信,为动态环境光通信提供了传统石英光纤无法兼具的柔性、可修复与自适应传输新路径。', 'title_en': 'Structured liquid-based reconfigurable all-liquid optical fibers', 'title_zh': '基于结构化液体的可重构全液体光学纤维'}] - for r in final_reports: - print(f"\n【{r['journal']}】") - print(f"英文标题:{r['title_en']}") - print(f"中文标题:{r.get('title_zh', 'N/A')}") - print(f"英文摘要:{r.get('snippet_en', 'N/A')}") - print(f"中文摘要:{r.get('snippet_zh', 'N/A')}") # 终端打印摘要翻译 - print(f"AI 总结:{r.get('summary_zh', 'N/A')}") - print(f"链接: https://doi.org/{r['doi']}") - print("-" * 40) + start_time = time.time() - # 生成 Markdown 文件 - save_to_markdown(final_reports) + # 1. 读取配置 + configs = get_journal_configs() + if configs: + # 2. 逐一关键词检索 + paper_tasks = fetch_dois_crossref(configs) + if paper_tasks: + # 3. 补充内容 (SerpApi) + enriched = enrich_content_serpapi(paper_tasks) + # 4. AI 处理 (DeepSeek) + final_reports = summarize_with_ds(enriched) - # start_time = time.time() - # configs = get_journal_configs() - # if configs: - # paper_tasks = fetch_dois_crossref(configs) - # if paper_tasks: - # enriched = enrich_content_serpapi(paper_tasks) - # final_reports = summarize_with_ds(enriched) - # - # # 打印汇总预览 (所有原文/翻译/总结都会在这里显示) - # print("\n" + "=" * 60) - # print(f"📊 最终简报汇总预览 - {datetime.date.today()}") - # print("=" * 60) - # for r in final_reports: - # print(f"\n【{r['journal']}】") - # print(f"英文标题:{r['title_en']}") - # print(f"中文标题:{r.get('title_zh', 'N/A')}") - # print(f"英文摘要:{r.get('snippet_en', 'N/A')}") - # print(f"中文摘要:{r.get('snippet_zh', 'N/A')}") # 终端打印摘要翻译 - # print(f"AI 总结:{r.get('summary_zh', 'N/A')}") - # print(f"链接: https://doi.org/{r['doi']}") - # print("-" * 40) - # - # # 生成 Markdown 文件 - # save_to_markdown(final_reports) - # else: - # print("\n📭 无新发现。") - # print(f"\n✨ 总耗时: {round(time.time() - start_time, 2)}s") \ No newline at end of file + # 5. 打印汇总预览 + print("\n" + "=" * 60) + print(f"📊 最终简报汇总预览 - {datetime.date.today()}") + print("=" * 60) + for r in final_reports: + print(f"\n【{r['journal']}】(关键词: {r.get('hit_keyword')})") + print(f"中文标题:{r.get('title_zh', 'N/A')}") + print(f"AI 总结:{r.get('summary_zh', 'N/A')}") + print(f"链接: https://doi.org/{r['doi']}") + print("-" * 40) + + # 6. 生成文件 + md_path = save_to_markdown(final_reports) + + # 7. 生成 PDF + 发送邮件 + base_dir = os.path.dirname(os.path.abspath(__file__)) + css_path = os.path.join(base_dir, "github.css") + pdf_path = markdown_to_pdf(md_path, css_path) + if pdf_path: + today_str = datetime.date.today().strftime("%Y-%m-%d") + subject = f"{today_str}技术前沿周报" + send_pdf_via_email(pdf_path, subject, MAIL_RECIPIENT) + else: + print("\n📭 最近一周内未搜索到相关关键词的论文。") + print(f"\n✨ 总耗时: {round(time.time() - start_time, 2)}s") \ No newline at end of file diff --git a/requirements.txt b/requirements.txt new file mode 100644 index 0000000..fc1c111 --- /dev/null +++ b/requirements.txt @@ -0,0 +1,6 @@ +requests +habanero +serpapi +weasyprint +markdown +google-search-results \ No newline at end of file