跳至主内容
非官方测试版翻译

本页面由 PageTurner AI 翻译(测试版)。未经项目官方认可。 发现错误? 报告问题 →

源代码结构

Jellyfin 是一个由客户端、插件和其他实用项目组成的复杂系统。这些源代码树能为新开发者提供绝佳指引,帮助理解各个项目的架构设计。

Jellyfin 服务端

  1. .ci: Azure Pipelines Build definitions

  2. DvdLib: DVD Analyzer

  3. Emby.Dlna: DLNA support for the server

    • Profiles: DLNA Profiles for clients
  4. Emby.Drawing: image processor managing the image encoder and image cache paths

  5. Emby.Naming: parsers for the media filenames

  6. Emby.Notifications: listening for events and sending the associated notification(事件监听与通知发送模块)

  7. Emby.Photos: metadata provider for photos

  8. Emby.Server.Implementations: main implementations of the interfaces

    • ScheduledTasks: all scheduled tasks can be found here
  9. Jellyfin.Api: Jellyfin API

    • 控制器: API controllers answering the Jellyfin API requests
    • Helpers:
      • MediaInfoHelper.cs: logic for the stream builder that determines method of playback such as Direct Play or Transcoding
  10. Jellyfin.Data: models used in the Entity Framework Core Database schema

  11. Jellyfin.Drawing.Skia: image manipulation like resizing images, making image collages(图像处理功能,如调整尺寸、制作拼贴等)

  12. Jellyfin.Networking: managing network interfaces and settings

  13. Jellyfin.Server.Implementations: like Emby.Server.Implementations, implementations using the EF Core Database

  14. Jellyfin.Server: main server project that starts the whole server

  15. MediaBrowser.Common: common methods used throughout the server

  16. MediaBrowser.Controller: interface definitions

  17. MediaBrowser.LocalMetadata: metadata provider and saver for local images, local Collections and Playlists

  18. MediaBrowser.MediaEncoding: managing ffmpeg while interacting with the media files

  19. MediaBrowser.Model: defining models used throughout the server

  20. MediaBrowser.Providers: managing multiple metadata sources

  21. MediaBrowser.XbmcMetadata: metadata provider and saver for local .nfo files

  22. RSSDP: RSSDP 库, including custom changes, for the Simple Service Discovery (SSDP) protocol

  23. apiclient: files used for generating the axios API client

  24. deployment: files used while building Jellyfin for different platforms

  25. 测试:multiple Unit Test projects testing Jellyfin functionality

  26. Dockerfile.* Dockerfiles defining the Jellyfin Docker image

网页客户端

  1. src:
    • assets:images, styles, splash screens, and any other static assets
      • css:all global stylesheets used throughout the client
      • img:images for things like device icons and logos
      • splash:progressive web apps will show these splash screens
    • components:custom elements used for different sections of the user interface
      • playerstats.js:display playback info in browsers and other clients that include the web source
    • controllers:scripts that handle the logic for different pages
    • elements:custom UI components that are used globally such as buttons or menus
    • legacy:currently used for all polyfills and scripts related to backwards compatibility
    • libraries:dependencies that we eventually want to remove and include during the build step
    • scripts:any script that isn't tied to a UI element or page but rather general functionality
    • strings:translations for the entire interface
    • themes:custom and bundled themes can be found here in their own directories

Kodi 客户端

  1. jellyfin_kodi

    • database:manipulating the local Jellyfin sqlite database
    • dialogs:code behind popup menus for user interaction
    • entrypoint:main add-on settings page
    • helper:small helper functions, mostly formatting or reused functions
    • jellyfin:interacting with the server
    • objects:
      • kodi:handling local Kodi media types and database
  2. 资源:

    • language:string files for localization
    • skins:design of popup menus for user interaction