Skip to content

Conversation

@levischd
Copy link
Contributor

@levischd levischd commented Nov 17, 2025

What problem does this PR solve?

This PR adds a native Moodle connector to sync content (courses, resources, forums, assignments, pages, books) into RAGFlow.

Type of change

  • New Feature (non-breaking change which adds functionality)

@dosubot dosubot bot added size:L This PR changes 100-499 lines, ignoring generated files. 💞 feature Feature request, pull request that fullfill a new feature. labels Nov 17, 2025
Copy link
Member

@yongtenglei yongtenglei left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Hi, @levischd

Thank you for your contribution. I encountered a dependency issue when trying to test your code on a clean codebase. May I kindly confirm if it's working on your end?

And there are some conflicts need to resolve.

Cheers!

$ uv sync --python 3.10 --all-extras
  × No solution found when resolving dependencies for split (python_full_version == '3.12.*' and sys_platform == 'darwin'):
  ╰─▶ Because only the following versions of moodlepy are available:
          moodlepy<=0.23.0
          moodlepy==0.23.1
          moodlepy==0.23.2
          moodlepy==0.23.3
          moodlepy==0.23.4
          moodlepy==0.23.5
          moodlepy==0.23.7
          moodlepy==0.23.8
          moodlepy==0.23.9
          moodlepy==0.23.10
          moodlepy==0.24.0
          moodlepy==0.24.1
      and moodlepy>=0.23.0,<=0.23.3 depends on attrs>=20.3.0,<21.0.0, we can conclude that moodlepy>=0.23.0,<0.23.4 depends on
      attrs>=20.3.0,<21.0.0.
      And because moodlepy>=0.23.4,<=0.23.8 depends on attrs>=21.2.0,<22.0.0 and attrs>=22.2.0,<23.0.0, we can conclude that moodlepy>=0.23.0
      depends on one of:
          attrs>=20.3.0,<21.0.0
          attrs>=21.2.0,<22.0.0
          attrs>=22.2.0,<23.0.0

      And because trio>=0.29.0 depends on attrs>=23.2.0 and only the following versions of trio are available:
          trio<=0.29.0
          trio==0.30.0
          trio==0.31.0
          trio==0.32.0
      we can conclude that moodlepy>=0.23.0 and trio>=0.29.0 are incompatible.
      And because selenium==4.22.0 depends on trio>=0.17 and your project depends on moodlepy>=0.23.0, we can conclude that your project,
      selenium==4.22.0, all of:
          trio<0.17
          trio>=0.29.0
       are incompatible.
      And because your project depends on selenium==4.22.0 and trio>=0.29.0, we can conclude that your project's requirements are unsatisfiable.

      hint: `moodlepy` was found on https://mirrors.aliyun.com/pypi/simple, but not at the requested version (all of:
          moodlepy>0.23.0,<0.23.1
          moodlepy>0.23.1,<0.23.2
          moodlepy>0.23.2,<0.23.3
          moodlepy>0.23.3,<0.23.4
          moodlepy>0.23.4,<0.23.5
          moodlepy>0.23.5,<0.23.7
          moodlepy>0.23.7,<0.23.8
          moodlepy>0.23.8,<0.23.9
          moodlepy>0.23.9,<0.23.10
          moodlepy>0.23.10,<0.24.0
          moodlepy>0.24.0,<0.24.1
          moodlepy>0.24.1
      ). A compatible version may be available on a subsequent index (e.g., https://pypi.tuna.tsinghua.edu.cn/simple). By default, uv will
      only consider versions that are published on the first index that contains a given package, to avoid dependency confusion attacks. If all
      indexes are equally trusted, use `--index-strategy unsafe-best-match` to consider all versions from all indexes, regardless of the order in
      which they were defined.

      hint: `trio` was requested with a pre-release marker (e.g., all of:
          trio>0.29.0,<0.30.0
          trio>0.30.0,<0.31.0
          trio>0.31.0,<0.32.0
          trio>0.32.0,<1.dev0
      ), but pre-releases weren't enabled (try: `--prerelease=allow`)

      hint: `trio` was found on https://mirrors.aliyun.com/pypi/simple, but not at the requested version (all of:
          trio>0.29.0,<0.30.0
          trio>0.30.0,<0.31.0
          trio>0.31.0,<0.32.0
          trio>0.32.0,<1.dev0
      ). A compatible version may be available on a subsequent index (e.g., https://pypi.tuna.tsinghua.edu.cn/simple). By default, uv will
      only consider versions that are published on the first index that contains a given package, to avoid dependency confusion attacks. If all
      indexes are equally trusted, use `--index-strategy unsafe-best-match` to consider all versions from all indexes, regardless of the order in
      which they were defined.

@KevinHuSh KevinHuSh added the ci Continue Integration label Nov 18, 2025
@KevinHuSh KevinHuSh marked this pull request as draft November 18, 2025 02:14
@KevinHuSh KevinHuSh marked this pull request as ready for review November 18, 2025 02:14
@KevinHuSh KevinHuSh removed the ci Continue Integration label Nov 18, 2025
@KevinHuSh
Copy link
Collaborator

image

Fail for code check.

@KevinHuSh
Copy link
Collaborator

You need to submit uv.lock once the pyproject.yaml was changed.

@yongtenglei
Copy link
Member

Hi, @levischd

The code looks good to me. Could you please provide some screenshots of a successful run?

Cheers.

@levischd
Copy link
Contributor Author

Yeah sure! Let me know if you need anything else.

Bildschirmfoto 2025-11-19 um 10 31 23 Bildschirmfoto 2025-11-19 um 10 30 56

@yongtenglei yongtenglei self-requested a review November 19, 2025 09:44
Copy link
Member

@yongtenglei yongtenglei left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thank you. There are some new conflicts need to resolve, but I will approve it for now :)

Cheers!

@KevinHuSh
Copy link
Collaborator

Please submit an updated uv.lock since there're conflicts.

@KevinHuSh KevinHuSh added the ci Continue Integration label Nov 20, 2025
@levischd
Copy link
Contributor Author

@KevinHuSh Done :)

@KevinHuSh KevinHuSh merged commit f0a14f5 into infiniflow:main Nov 21, 2025
1 check passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

ci Continue Integration 💞 feature Feature request, pull request that fullfill a new feature. size:L This PR changes 100-499 lines, ignoring generated files.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants