fix links + prevent duplication

#1
by MHRDYN7 - opened
Files changed (1) hide show
  1. app.py +11 -3
app.py CHANGED
@@ -98,6 +98,14 @@ def submit_entry(
98
  errors.append("Approximate size must be a non-negative number.")
99
  if not field.strip():
100
  errors.append("Please provide a field.")
 
 
 
 
 
 
 
 
101
 
102
  if errors:
103
  return gr.update(value=f"Submission failed:\n- " + "\n- ".join(errors), visible=True), gr.update(visible=False)
@@ -121,7 +129,7 @@ def submit_entry(
121
  ok = f"Thanks, {user_display}. Your entry has been saved locally and will sync to the Hub within ~{COMMIT_EVERY_MIN} minutes."
122
  updated = read_all_records()
123
  rows = [
124
- [r["dataset_name"], r["dataset_url"], r["description"], f"{r['approx_size']} {r['size_unit']}", r["field"], r["user"], r["created_at"]]
125
  for r in updated
126
  ]
127
  return gr.update(value=ok, visible=True), rows
@@ -131,7 +139,7 @@ def refresh_table(field: str, search: str):
131
  data = read_all_records()
132
  data = filter_records(data, field, search)
133
  rows = [
134
- [r["dataset_name"], r["dataset_url"], r["description"], f"{r['approx_size']} {r['size_unit']}", r["field"], r["user"], r["created_at"]]
135
  for r in data
136
  ]
137
  return rows
@@ -164,7 +172,7 @@ with gr.Blocks(title="Community Dataset Index", css=".wrap {max-width: 1200px; m
164
  refresh = gr.Button("Refresh")
165
  table = gr.Dataframe(
166
  headers=["Name", "URL", "Description", "Size", "Field", "User", "Created"],
167
- datatype=["str", "str", "str", "str", "str", "str", "str"],
168
  interactive=False,
169
  wrap=True,
170
  )
 
98
  errors.append("Approximate size must be a non-negative number.")
99
  if not field.strip():
100
  errors.append("Please provide a field.")
101
+
102
+ # Check for existing dataset URL and name
103
+ existing_records = read_all_records()
104
+ for record in existing_records:
105
+ if record.get("dataset_url", "").strip().lower() == dataset_url.strip().lower():
106
+ errors.append(f"Dataset URL already exists: {record.get('dataset_url')}")
107
+ if record.get("dataset_name", "").strip().lower() == dataset_name.strip().lower():
108
+ errors.append(f"Dataset name already exists: {record.get('dataset_name')}")
109
 
110
  if errors:
111
  return gr.update(value=f"Submission failed:\n- " + "\n- ".join(errors), visible=True), gr.update(visible=False)
 
129
  ok = f"Thanks, {user_display}. Your entry has been saved locally and will sync to the Hub within ~{COMMIT_EVERY_MIN} minutes."
130
  updated = read_all_records()
131
  rows = [
132
+ [r["dataset_name"], f'<a href="{r["dataset_url"]}" target="_blank">{r["dataset_url"]}</a>', r["description"], f"{r['approx_size']} {r['size_unit']}", r["field"], r["user"], r["created_at"]]
133
  for r in updated
134
  ]
135
  return gr.update(value=ok, visible=True), rows
 
139
  data = read_all_records()
140
  data = filter_records(data, field, search)
141
  rows = [
142
+ [r["dataset_name"], f'<a href="{r["dataset_url"]}" target="_blank">{r["dataset_url"]}</a>', r["description"], f"{r['approx_size']} {r['size_unit']}", r["field"], r["user"], r["created_at"]]
143
  for r in data
144
  ]
145
  return rows
 
172
  refresh = gr.Button("Refresh")
173
  table = gr.Dataframe(
174
  headers=["Name", "URL", "Description", "Size", "Field", "User", "Created"],
175
+ datatype=["str", "html", "str", "str", "str", "str", "str"],
176
  interactive=False,
177
  wrap=True,
178
  )